Heat 2 tbsp of oil and ghee in a pan over medium heat.
Add the whole spices if you have not ground them into a powder.
Add the onion and stir fry till it becomes soft.
Add the garlic, ginger and green chillis. Stir fry for 1 minute.
Process the onion mixture into a paste in a food processor.
Add 1 tbsp oil in the pan. Add remaining cumin seeds and allow them to sizzle in the oil.
Add the paste. Stir fry till it turns pinkish or light brown in colour.
Add the nut powder and mix well.
Add turmeric, red chilli powder, coriander powders, saffron and garam masala. Mix well.
Add the yogurt and mix well.
Add the tomato puree and salt. Cover the pan and allow the onion tomato mixture to cook over low heat for 2-3 minutes.
Add coconut milk, mix well. Cover the pan and allow the curry to simmer over low heat for 7-10 minutes. Stir in between so that the curry does not stick to the bottom of the pan.