Marinate the chicken in yogurt, salt and pepper and set aside for 20 minutes. Soak the cashews in water at the same time so that they soften by the time you are ready to use them.
Heat 2 tablespoons ghee and cook the onions till golden brown. Browning the onions takes a while, because it’s important to brown them without burning. Keep stirring them every few minutes as they cook to prevent them from sticking to the bottom. Once they are evenly deep golden brown and soft, you know they are ready (or refer to the video above for colour).
Transfer them to a mixer grinder along with soaked cashews, garlic, ginger, green chillies and a little water and grind till smooth.
Heat the remaining ghee and add whole spices (cardamom pods, bayleaf, cloves, cinnamon) and the chicken. Stir fry the chicken on high heat for a few minutes till slightly brown. Add the onion paste with ½ cup water, coriander powder, chilli powder and salt. Cover and cook for 20-25 minutes. Keep stirring occasionally while the chicken cooks, and and add more water if necessary.
Once the chicken is cooked, add garam masala and cream, mix well and turn it off. Serve hot.