Preheat the oven to 220°C.
In a large mixing bowl, combine the cauliflower florets with a generous portion of olive oil, a pinch of salt, pepper, cumin, coriander seeds, and crushed cardamom. Toss to coat.
Transfer the cauliflower to a baking tray and spread in an even layer. Roast in the oven for about 20-25 minutes or until the florets are golden and crispy on the edges. Remove and set aside.
In a large pot or deep pan, heat olive oil over medium heat. Add the sliced onion, a pinch of salt, pepper, and sugar. Cook, stirring frequently, until the onions are brown and caramelised, which will take about 10-15 minutes.
Add in the minced garlic and cook for another 2 minutes until fragrant.
Stir in the cumin, coriander seeds, and cardamom, cooking for 1-2 minutes to release their flavours.
Add the tomato puree and mix well, letting it cook for 2-3 minutes.
Pour in the vegetable stock and coconut milk, stirring to combine. Bring the mixture to a gentle simmer.
Add the drained lentils to the pot. Cover and let it simmer for about 20-25 minutes or until the lentils are tender but still holding their shape. Stir occasionally and add more stock or water if the mixture becomes too thick.
2 minutes before the dahl is done, fold in the washed spinach and let it wilt into the mixture.
Once the spinach is incorporated and the dahl is done, check for seasoning and adjust with more salt or spices if necessary.
To serve, ladle the spinach and lentil dahl onto plates and top with the roasted cauliflower. This dish pairs well with naan bread or steamed rice.