In a small bowl, combine the garam masala, cumin and ground ginger. Use the flat of a chef's knife to crack the cardamom pods and add those to the bowl too.: The moment you mix these spices, inhale deeply to gauge their freshness, because fragrant spices are the difference between bright curry and flat curry. When you crack the cardamom pods with the knife, you should hear a faint snap and see the seeds release, which is a sign the oils are ready to bloom. A common mistake here is using old spices that smell dull, so if anything smells muted consider swapping them out. This pre-blend saves time when adding them to hot fat later, ensuring even distribution and consistent flavor in the sauce.
Heat the butter in a heavy skillet or Dutch oven over medium heat. Add the onion and cook for about 10 minutes, browning the onion and letting it develop dark color, although without burning it. Stir in the garlic and ginger and cook for 2 minutes.: As the butter melts you should see it foam and then calm, signaling the right temperature. Add the diced onion and listen for a steady sizzle, then watch as the edges turn golden and the sugars caramelize, creating deep, sweet notes. When you add the minced garlic and grated ginger , the aroma will shift to a savory, spicy perfume, which tells you the aromatics are releasing their juices. If the onion starts to blacken quickly, lower the heat immediately to avoid bitter char, which will negatively affect the whole dish. Taking time here builds the foundational flavor that the rest of the recipe depends on.
Add the spices from the cup and stir them into the onion mixture. Add the tomatoes and the chickpeas and saute for about 2 minutes. Take the pan off the heat and stir in the shaken coconut milk. Return the pan to the heat and bring to a gentle boil. Turn down the heat, stir in the cauliflower and simmer for about 30 minutes, or until the chickpeas are tender and the sauce has reduced slightly.: When you fold in the pre-mixed spices they should sizzle briefly and perfume the pan, indicating their oils are waking up. Adding the diced tomatoes and chickpeas introduces acidity and body, and a short saute concentrates flavors. Removing the pot from heat before adding the well shaken coconut milk prevents sudden splatter and helps the liquid incorporate smoothly. As you return to heat and bring to a gentle boil, watch for small bubbles around the edges, then lower to a steady simmer; this gentle cooking softens the cauliflower and allows the sauce to thicken. A frequent error is boiling too vigorously, which can split coconut milk and make the texture grainy, so maintain a patient simmer for the best mouthfeel.
Add the baby spinach in handfuls, stirring in each handful to help it wilt before adding the next. Stir in the lemon juice. Taste and season with salt.: As you add each handful of spinach , you will see it collapse into the sauce, turning bright emerald and giving off a fresh vegetal scent that balances the warm spices. Stirring between additions ensures even wilting and prevents clumps. When you squeeze in the lemon juice , the acidity will pop against the creamy background, sharpening the flavors. Taste carefully and adjust the salt to bring everything into balance. A common misstep is over-salting early, so always finish with salt after reduction and acid adjustments.
Serve immediately over rice, or let cool and refrigerate. The curry will hold up well in the refrigerator in an airtight container for up to 5 days.: When you plate the curry over warm rice or quinoa , the steam opens the aroma and the grains soak up the sauce, creating a comforting bite. If you plan to refrigerate, let the curry cool slightly before transferring to airtight containers to preserve texture and prevent condensation. Reheating gently on the stove with a splash of water or a brief microwave turn restores creaminess. Avoid repeated aggressive reheating, which can cause the coconut milk to separate and the vegetables to become mushy.