Prep the protein. Pat chicken or lamb dry and season with salt and pepper. If using chickpeas, set them aside to add later.
Sear for deeper flavor. Heat 2 tablespoons olive oil in a heavy pot or tagine over medium-high heat. Sear chicken or lamb in batches until browned on both sides, 3–4 minutes per side.
Transfer to a plate. Skip this step if using chickpeas.
Soften the aromatics. Add remaining 1 tablespoon olive oil. Reduce heat to medium.
Add onion and cook 5–7 minutes, stirring, until softened and just starting to color. Stir in garlic and cook 30 seconds.
Bloom the spices. Add cumin, coriander, turmeric, cinnamon, paprika, ginger, cayenne, and 1 teaspoon salt. Stir for 30–45 seconds until fragrant.
This step is key to unlocking deep flavor.
Build the braise. Add carrots, sweet potato, and zucchini. Stir to coat in the spices. Pour in diced tomatoes with juices and the broth.
Scrape up any browned bits from the bottom.
Return the protein. Add seared chicken or lamb back to the pot with any juices. If using chickpeas, add them now.
Add the sweet-savory elements. Stir in dried apricots or raisins and olives. Bring to a gentle simmer.
Cover and cook. Reduce heat to low, cover, and simmer 35–45 minutes (chicken or chickpeas) or 1–1.5 hours (lamb), until protein is tender and vegetables are soft but not mushy.
Stir a couple of times to prevent sticking.
Finish bright. Stir in lemon zest, lemon juice, and chopped cilantro/parsley. Taste and adjust salt, pepper, and cayenne. If sauce seems thin, simmer uncovered 5–10 minutes to reduce; if too thick, add a splash of broth.
Serve. Spoon over rice, quinoa, or cauliflower rice.
Top with extra herbs and toasted almonds for crunch.