In a small bowl, combine paprika, cinnamon, garlic powder, coriander, cumin, cardamom, ground ginger, turmeric, cayenne (if using), cloves, caraway, allspice, salt, and black pepper.
Pat the lamb pieces dry with a paper towel. Toss them in the spice mix until well coated. If you have time, cover and let the lamb marinate in the fridge for 1–2 hours (or overnight) for deeper flavor.
Heat a large Dutch oven or tagine over medium heat.Add the chopped onions and carrots. Cook, stirring occasionally, until the onions are soft and lightly golden, 6–8 minutes.Stir in the garlic and freshly grated ginger. Cook 1–2 minutes, stirring, until very fragrant. Stir in the tomato paste, add water, and cook for another 1–2 minutes, letting it darken slightly and coat the vegetables. Season with salt and black pepper to taste. Add the lemon zest and stir.
In a tagine or Dutch oven, layer the seasoned lamb and vegetables together, mixing gently to combine.
Preheat the oven to 375°F if you’re using a Dutch oven or other oven‑safe pot. If you’re using a ceramic tagine, do not preheat the oven; place the filled tagine into a cold oven, then turn it on so the temperature rises gradually and the ceramic doesn’t crack from sudden heat.
Cook for about 2 ½–3 hours, or until the lamb is very tender and the sauce is thick and rich.Check occasionally, stirring and adding a splash more liquid if it looks too dry. You want a glossy, spoon‑coating sauce by the end. When the lamb is tender, taste the sauce and adjust seasoning with more salt, pepper, or a pinch of cayenne if you want extra heat.If you’d like the sauce a bit brighter, you can add an extra grating of lemon zest or a squeeze of lemon juice right at the end. Just before serving, sprinkle the tagine with chopped parsley and mint.Garnish with lemon slices or wedges around the edges of the serving dish.Serve hot with fried or steamed cauliflower, roasted vegetables, or crusty sourdough bread to soak up the sauce.