Heat oil in a pan. But don't heat it too much otherwise spices will burn.
Add cumin seeds, bay leaf, fennel seeds, coriander seeds, dry red chilies, cloves, cinnamon stick, black cardamom, green cardamoms, star anise, ginger, garlic cloves, cashews
and melon seeds.
Roast them on low heat until spices begin to turn slightly brown.
Add onion and cook it until it turns pink and translucent.
Add tomatoes, red chilli powder, turmeric powder, salt and dry fenugreek leaves. Mix well.
Put the lid on vessel and let tomatoes cook on low heat for 10-12 minutes or until they turn soft & mushy and their raw smell is gone.
Remove the vessel from heat and let mixture turn cool completely.
Transfer the mixture into grinder jar and also pour coconut milk in the jar. Grind the mixture into a fine paste. Gravy is ready.