Add finely chopped onion, ginger-garlic paste, cilantro, mint, green chili, cumin, coriander, garam masala, Kashmiri chili powder, turmeric, black pepper, roasted gram flour, lemon juice, and salt.
For the best texture, knead the mixture for several minutes rather than simply stirring it.
Chilling makes the meat mixture easier to shape and helps the koftas maintain their form while cooking.
Take small portions of the mixture and roll them into smooth balls, approximately 1½ inches in diameter.
Add the koftas in batches and gently brown them on all sides.
They do not need to be completely cooked at this stage because they will finish cooking in the gravy.
Add cinnamon, cardamom, cloves, bay leaf, and cumin seeds.
Add ginger-garlic paste and cook for another minute.
Cook for approximately 8–10 minutes, stirring occasionally, until the tomatoes soften completely and the mixture becomes thick.
Cook for another minute.
Remove the whole spices if desired.
For an exceptionally smooth restaurant-style sauce, pass the blended mixture through a fine-mesh sieve.
Bring to a gentle simmer.
Carefully place the browned koftas into the simmering gravy.
Reduce the heat to low and stir in the heavy cream.
Taste and adjust the seasoning.
Drizzle with a little cream and garnish with cilantro, toasted cashews, and fresh mint if desired.
Serve hot with naan, paratha, roti, jeera rice, or basmati rice.