Combine chicken, 1/2 cup yogurt, 1/2 teaspoon turmeric, red chili powder (if using), 1/2 teaspoon salt, and half of the minced garlic and ginger. Refrigerate for 30 minutes to 4 hours.
Drain soaked cashews and almonds, then blend with 2 tablespoons of water until completely smooth. Set the nut paste aside.
Heat oil or ghee over medium-high heat. Fry thinly sliced onions for 20-25 minutes, stirring frequently, until deep golden-brown and slightly crispy. Remove with a slotted spoon and drain on paper towels. Reserve the oil.
Once cooled, transfer fried onions to a blender with 2 tablespoons of yogurt. Blend into a coarse, thick paste. Set aside.
Return the pan with the reserved oil to medium heat. Add cardamom, cloves, bay leaf, cinnamon, and cumin seeds. Sizzle for 30-45 seconds until fragrant.
Add the remaining minced garlic and grated ginger. Cook for 1-2 minutes until fragrant, stirring constantly to prevent burning.
Add the onion paste, ground coriander, ground cumin, and 1/2 teaspoon of garam masala. Cook for 5-7 minutes, stirring frequently, until the masala darkens and the oil separates.
Add marinated chicken and cook over medium-high heat for 5-7 minutes until lightly browned. Reduce heat, whisk remaining yogurt until smooth, and gradually stir it into the pan.
Stir in the nut paste, remaining salt, and 1/4 cup water if needed for a pourable consistency. Cover and braise over low heat for 20-25 minutes until chicken is tender.
Uncover, stir in heavy cream and remaining 1/2 teaspoon garam masala. Warm through for 2-3 minutes. Stir in kewra water if using. Garnish with cilantro and serve.