Cut half of the shoulder into large chunks (2″ or so in size) and set aside.
Combine the bay leaves, cardamom, cinnamon, cloves, coriander, cumin, paprika, cayenne pepper, salt, and pepper and set aside.
Similarly, in a blender or food processor, blend the onion, ginger, garlic, and water into a fine paste and set aside.
Warm up the coconut oil in a large skillet on med/high heat until shimmering, about three minutes. Add the lamb pieces and brown on each side.
Be sure to give the pieces a few minutes per side to form a nice crust before turning them.
Once the lamb is well-browned, reduce the heat to medium and add the onion paste and seasonings, stirring everything around (gently so as to not break up the bay leaves).
Continue to simmer for another five minutes until very aromatic.
Add the tomato sauce and diced tomatoes, stir together, and bring to a simmer. Cover and reduce heat to low, simmering for 1.5 hours.
After an hour and a half, remove the lid and check to see if the lamb is fork-tender. If it is, keep the lid off and allow to simmer on med/low heat for another five minutes, which will thicken the sauce. If the lamb is still tough, cover and simmer on low for another 30 minutes and try again.
Right before serving, stir in the chopped cilantro.