Bring a large pot of water to boil; with enough water so that the cauliflower head can be fully immersed into it.
Add in little salt and turmeric powder.
Place the cauliflower into the water, cover with the lid and let it cook for 5 mins. After 5 mins invert it upside down and again let it cook for another 5 mins.
Remove and immediately run it under cold tap water and keep aside.
For the Gravy:
Heat up the butter and oil, in a non-stick wok. Add in the whole dry spices – cinnamon, cardamom, cloves and bay leaf. Saute for few seconds and add in the fennel seeds and cumin seeds. Let sizzle.
Add in the onions, saute for 2-3 mins. Add in the chillies, garlic and ginger. Saute for another 2 mins.
Add in the tomatoes. Let it cook. Add in the salt and the dried fenugreek leaves. Let this cook for another 7-8 mins.
Switch off the flame and let this mixture cool completely.
Once cooled, remove the bay leaf and peel off the skin of cardamom (use just the seeds inside it to blend) and then blend the remaining along with cashews and mango pulp adding milk little at a time, until you get the desired consistency – a smooth thick puree.
Do a taste test and adjust the spice and salt.
Oil the baking dish if need be. Place the cauliflower head onto it. Pour this puree on top of the cauliflower to coat it completely. Some of it may fall on the side. Reserve 1 cup of the puree for serving it on the side later. Bake this at preheated oven of 200 degree celsius for 35-40 mins until the cauliflower is dry to touch and the gravy thickens flipping the cauliflower after 30 mins.
Heat up the reserved 1 cup of gravy. Add in the cream if you are using and bring it a boil stirring at occasional intervals.
Pour this gravy onto the serving plate. Place the cauliflower head on top of it. Garnish with coriander leaves and serve it along with any Indian flatbreads like roti/chapati/naan/phulkas just anything.