Measure and prepare the ingredients before starting to cook.
Cut the lamb shoulder into small pieces.
Preheat a Dutch oven over medium-high heat and add butter. Sear lamb in batches, not overcrowding the pot. Once seared on all sides, take it out and set aside.
Lower the heat to medium and add sliced onions and cook until softened.
Add in minced garlic and ginger. Stir and let is cook just until fragrant.
Stir in the spices and bay leaves and cook for a few seconds and you constantly stir.
Whisk in tomato paste and chicken stock and mix well.
Add back the seared meat and the juices that ran off of it while resting. Stir well and lower the heat to low. Cover and cook for about an hour and a half until the lamb is completely tender. Make sure to stir from time to time as the meat cooks.
Stir in yogurt, garam masala, and leftover ground fennel seeds. Sir well and let it cook just a few more minutes.
Serve over rice, with a sprinkle of fresh cilantro, and some bread.
Nutritional notes: please note that the nutrition is calculated just for the stew, without the rice side dish. Option to use beef: Although this traditional recipe is made with lamb, you can substitute beef or even chicken for lamb. If you plan to use beef instead of lamb, please remember that beef is much tougher and will need more time to stew. So you may need to plan for an additional hour of cooking. (If you plan to use chicken, the cook time will actually be much less than lamb.)