In a large mixing bowl, combine yogurt, turmeric, cumin, coriander, salt, lemon juice, minced garlic, and grated ginger.
Add the chicken pieces to the marinade and mix well. Cover and refrigerate for at least 30 minutes (or up to 8 hours for more flavor).
Heat 1 tbsp oil or ghee in a large skillet over medium-high heat.
Add the marinated chicken pieces and cook for 5-7 minutes, or until lightly browned on all sides. Remove the chicken from the pan and set it aside.
In the same pan, add 1 tbsp oil or ghee.
Add the whole spices (cinnamon stick, cardamom pods, cloves, and bay leaf) and cook for 30 seconds until fragrant.
Add the chopped onions and sauté for 5-7 minutes until golden brown.
Add minced garlic and grated ginger. Sauté for 1-2 minutes until fragrant.
Add ground turmeric, cumin, coriander, and chili powder (if using). Stir well to coat the onions in the spices.
Blend the soaked cashews with 1/2 cup water to make a smooth cashew paste.
Add the cashew paste and chicken broth (or water) to the skillet. Stir well to combine.
Add the heavy cream and bring the sauce to a gentle simmer.
Return the cooked chicken to the skillet. Stir to coat the chicken in the sauce.
Cover and simmer on low heat for 15-20 minutes, stirring occasionally, until the chicken is tender and cooked through.
Taste the korma and adjust the seasoning with salt, if needed.
Turn off the heat and garnish with fresh cilantro.
Serve hot with steamed rice, naan, or roti. Enjoy!