Mix lamb cubes with ½ cup yogurt, 1 teaspoon Kashmiri chili powder, ½ tablespoon ground coriander, and salt in a bowl. Cover and refrigerate for 1 to 4 hours (minimum 1 hour).
2 lbs lamb shoulder, 1 cup plain full-fat yogurt, 2 teaspoons Kashmiri red chili powder, 1 tablespoon ground coriander, salt
Heat ghee in a heavy-bottomed pot over medium heat. Add cardamom pods, cinnamon sticks, cloves, and bay leaf. Toast for 1 to 2 minutes until fragrant. Add sliced onions and cook 10 to 12 minutes, stirring occasionally, until deep golden brown.
2 tablespoons ghee, 4 pods green cardamom, 2 sticks cinnamon, 4 whole cloves, 1 leaf bay leaf, 2 large onions
Remove marinated lamb from fridge, reserving marinade. Increase heat to medium-high. Add lamb in two batches, browning 4 to 5 minutes per batch without stirring too much. Remove browned lamb and set aside.
2 lbs lamb shoulder
Reduce heat to medium. Add grated ginger and minced garlic to the pot. Cook 2 minutes until raw smell disappears. Stir in tomato paste and remaining 1 teaspoon Kashmiri chili powder. Cook 3 minutes. Mix remaining yogurt with ¼ cup water and slowly stir into pot off direct heat to prevent curdling. Return lamb and any juices to the pot.
2 inch ginger, 6 cloves garlic, 2 tablespoons tomato paste, 2 teaspoons Kashmiri red chili powder, 1 cup plain full-fat yogurt, 2 lbs lamb shoulder
Add 1 cup water or lamb stock. Bring to a boil, then reduce to low simmer (around 180°F). Cook uncovered for 90 minutes, stirring every 20 minutes. Lamb is done when fork-tender and sauce coats the back of a spoon. Rest off heat for 15 minutes before serving.
1 cup water or lamb stock, 2 lbs lamb shoulder