Wash and cook the spinach in boiling water for 2 minutes and transfer to a bowl with cold water to stop the cooking process.
After about a minute, remove the spinach from cold water, drain any excess water and transfer to a blender or grinder and blend it to form a smooth paste. You may add little water while blending if required.
Heat vegetable oil in pan. Add cumin seeds, clove, cardamom seeds, bay leaf, and saute for few seconds.
Now add onion along with some salt and saute until it turns translucent.
Next, add garlic cloves, ginger, green chilies and continue sauteing till onion becomes light golden in color. Add tomatoes and cook until they are softened.
Add turmeric powder, red chilli powder, garam masala powder, coriander powder and saute for 2 minutes.
Add tomato ketchup, blended spinach paste, and milk and simmer it uncovered on medium-high flame for about 5 minutes.
Finally add cubes of tofu and continue simmering on medium flame for another 5 minutes.
You may garnish the dish with crushed kasuri methi, ginger julienne, coriander leaves and a dollop of butter if desired.