Heat the fat — Melt the ghee or heat the oil in a large pan over medium heat until it shimmers but doesn’t smoke.
Cook the onion — Add the chopped onion and cook slowly, stirring often, until soft and lightly golden. You should hear a gentle sizzle and smell sweetness, not burning.
Add chicken — Stir in the chicken pieces and cook for a few minutes until the outside turns white but not browned.
Add garlic and ginger — Stir for about 30 seconds until fragrant. If the pan smells sharp, lower the heat.
Add the spices — Sprinkle in cumin, coriander, garam masala, chilli powder, turmeric, salt, and pepper. Stir well so the chicken is fully coated and the spices smell warm.
Add tomato puree — Mix it in and cook briefly until the color darkens slightly. This removes the raw taste.
Lower the heat — Stir in the yogurt slowly, mixing constantly so it stays smooth.
Add coconut cream and almonds — Pour in the coconut cream and stir in the ground almonds. The sauce should look pale and slightly thick.
Simmer gently — Cook on low heat for about 10 minutes until the chicken is tender and the sauce looks glossy.
Finish with cream and sugar — Stir in the cream and sugar, cook one more minute, and taste before serving. The sauce should be smooth, rich, and lightly sweet.