In a blender or bullet blender, combine the onion, ginger, garlic and green chilies. Blend until it is a smooth puree.
In a deep skillet or pot, add 1 tbsp butter (or more!) and 1-2 tbsp of a mild flavored oil such as sunflower.
Add the whole spices to the oil: cardamom, clove, cinnamon, peppercorn. Turn the flame to high. The oil will become fragrant as it heats up.
Once the oil is hot, add the onion, ginger-garlic mixture to the pot. Reduce the heat to med-high. Saute until the onion smell begins to go away.
Add tomato puree, reduce to medium. (Note: Be very careful as this tends to sputter as it heats up. )
Add 1 tsp red chili powder (optional for heat), and 1 tsp paprika or kashmiri chili powder (for color), 1/2 tsp garam masala, and 2 tsp maple syrup or a sweetener of choice.
Cover and simmer for 5-10 minutes to reduce the tomato sauce and mellow its strong tomato flavor. Add water as needed so the dish does not burn on the bottom.
Once the flavors come together and the pungent aroma mellows, reduce the flame and mix in the cashew cream. Feel free to reserve some for garnish.
Fold in the tofu and cauliflower and sprinkle some kasuri methi on top.
Garnish with cilantro and serve!