Collect all the necessary ingredients.
Combine the yogurt, garlic, ginger, coriander, cumin, cayenne, paprika, and turmeric in a bowl and stir until fully blended. This mixture will create a flavorful marinade, infusing the yogurt with aromatic spices to coat the lamb evenly and enhance its taste.
Add the lamb to a nonstick saucepan and include the onions. Cook over medium heat until the onions begin to sizzle, allowing their natural sweetness to release while the lamb starts to brown, creating a flavorful base for the dish.
Add the yogurt mixture to the saucepan, then lower the heat to simmer. Cover and cook, stirring occasionally, for about 30 minutes, allowing the lamb to release its natural juices and absorb the flavors, resulting in a tender and flavorful dish.
Remove the lid and raise the heat to medium. Cook, stirring frequently, for about 5 minutes, allowing the sauce to thicken and reduce to a paste-like consistency, concentrating the flavors and enhancing the texture.
Stir in the tomato paste, salt, and 1 tablespoon of butter. Lower the heat and cook for 3 to 4 minutes, allowing the flavors to meld together. Then add the boiling water, cover the pan, and let it simmer for 15 minutes to soften the lamb and intensify the sauce.
Melt the remaining 1 tablespoon of butter over low heat. Add the bay leaves, cardamom, cinnamon, and cloves, letting them sizzle for about 30 seconds to release their aromatic flavors, which will infuse the dish with a warm, fragrant depth.
Add the nutmeg and pour the sauce over the lamb, stirring to coat the meat evenly. Cover the pan and cook for 10 minutes, allowing the flavors to fully combine and the lamb to absorb the rich, spiced sauce.
Mix in the chopped mint and coriander, adding a fresh, aromatic touch to the dish that will brighten the rich flavors and enhance its overall taste.