Soak the nuts. Cover the cashews or almonds with hot water and let sit 10 minutes.
This softens them for a smoother sauce.
Make the base paste. In a blender, add sliced onions, garlic, ginger, drained nuts, and 2–3 tablespoons water. Blend until mostly smooth. A few small bits are fine.
Bloom the whole spices. Heat oil or ghee in a wide pan over medium heat.
Add bay leaf, cardamom, and cinnamon. Cook 30–45 seconds until fragrant.
Cook the paste. Add the onion-nut paste. Season with a pinch of salt.
Cook 6–8 minutes, stirring often, until thickened and lightly golden. This step builds flavor, so don’t rush it.
Add ground spices. Stir in turmeric, coriander, cumin, and white pepper. Cook 30 seconds to bloom the spices.
Add chicken. Stir in chicken pieces and 1 teaspoon salt.
Cook 3–4 minutes, stirring, until the chicken loses its raw pink on the outside.
Adjust consistency. Add 1 cup warm water or stock. Bring to a gentle simmer. Reduce heat to low, cover, and cook 10–12 minutes, stirring once or twice.
Finish with yogurt. In a small bowl, whisk yogurt with a spoonful of the hot sauce to temper it.
Turn heat to low. Stir the tempered yogurt into the pan, a little at a time, to prevent splitting.
Optional creaminess. Add heavy cream or coconut milk if you want a richer, silkier korma. Sprinkle in sugar to balance.
Final seasoning. Stir in garam masala and butter.
Taste and adjust salt, pepper, and sweetness. Simmer 2 more minutes until the sauce coats the chicken.
Garnish and serve. Remove bay leaf and cinnamon. Top with cilantro and nuts if you like.
Serve hot with basmati rice or warm naan.