Sauté the aromatics: Warm 2 tablespoons of olive oil in a large pot over medium heat. Add the diced onion and a pinch of salt.
Cook 5–7 minutes, stirring, until soft and lightly golden. Add garlic and ginger; cook 1 minute until fragrant.
Toast the spices: Stir in cumin, coriander, smoked paprika, turmeric, cinnamon, and red pepper flakes. Toast 30–45 seconds, stirring, to wake up the flavors.
Build the base: Add tomato paste and cook 1–2 minutes, stirring, until it darkens slightly.
Pour in the diced tomatoes with their juices and scrape up any browned bits from the bottom.
Add carrots and lentils: Toss in the sliced carrots, red lentils, and brown or green lentils. Stir to coat everything in the spiced tomato mixture.
Simmer: Add 4 cups of vegetable broth and the bay leaf. Bring to a gentle boil, then reduce heat to low and simmer uncovered for 25–35 minutes, stirring occasionally.
Add more broth as needed to reach your desired thickness.
Finish the stew: When lentils are tender and carrots are soft, stir in coconut milk (if using). Add lemon zest and juice to brighten the flavors. Season generously with salt and black pepper.
Taste and adjust: Add more red pepper flakes for heat, a splash more lemon for acidity, or extra broth to loosen.
Remove bay leaf.
Serve: Ladle into bowls and top with chopped cilantro or parsley. Add a dollop of yogurt or a swirl of olive oil if you like. Serve with warm flatbread, rice, or crusty bread.