In a heavy bottomed cooking pot(4 qt or larger), heat up the ghee on low medium flame taking care it does not brown.
Add all the whole spices, ginger paste and garlic paste. I also add 2 whole green chilies (optional) for flavor. Fry everything for 30-40 seconds or until the raw smell of ginger and garlic goes away. Take care that the color does not change.
If you are not using pre made fried onions, add raw thinly sliced onions at this stage and brown for 6-8 minutes until deep golden before adding chicken.
Bump to medium heat and add a splash of water to the pot. Add the chicken. Sprinkle ½ teaspoon salt. Now we will sear the chicken on low heat while stirring intermittently for next 5-7 minutes or until you see the chicken is not pink on outside. You do not need to brown the chicken, a light sear is enough.Keep the heat constant else the chicken will get watery on low heat .
Once chicken is lightly seared, reduce heat to low and add the ground spices(except garam masala), beaten yogurt and fried onions to the chicken next. Mix well and continoualy keep stirring for 2-3 minutes else the yogurt will curdle.
Bump heat to low medium and then let the chicken cook with yogurt for 7-10 minutes. You may cover the pot if needed. As it cooks, you will see that the sauce is getting thin since water from yogurt and chicken is getting released. But don’t worry.
Once the chicken is about 95% cooked, add 1 teaspoon salt along with the cashew paste we made earlier.
Cover and let cook for another 6-8 minutes or until chicken is fully cooked. You will have to keep an eye and stir the korma often since cashew paste has a tendency to stick to the bottom of pot. At this point you can adjust the consistency by adding ¼ -? cup water. Keep in mind that the korma sauce substantially thickens as it cools and rests so avoid making it to thick to begin with.
Uncover, taste and adjust the salt if needed. Mix in the heavy cream, sugar, garam masala, kasuri methi, kewra water and grated nutmeg. If desired, also add a sqeeze of lemon juice.
Let simmer (don't let boil after adding cream) for about 2-4 minutes on low heat. Your chicken korma is ready.