Heat 1 tbsp oil and add bay leaf, green cardamom, black cardamom, cloves, mace and fry till aroma of spices is released.
Then add ginger, garlic, onions and fry till the onions start to turn brown. Remove from heat and let it cool. Blend into a smooth paste.
Heat 1 tbsp oil and add the ground onion mixture. Saute for 1-2 minutes and then add tomato puree. Cook for 4-5 minutes.
Then add turmeric powder, red chilly powder, garam masala and mix well. Cook this mixture covered on medium flame for about 8-10 minutes.
Then cook uncovered for 3-4 minutes or until oil starts to leave the sides of the masala.
Grind the cashews with 2 tbsp milk to a smooth paste. Add the cashew paste and water to the masala and mix well.
Bring to boil and simmer for about 10-12 minutes on low flame or till the gravy begins to thicken.
Gradually add the cream and milk and keep stirring the gravy to avoid curdling of cream and milk. Simmer for 4-5 minutes or till the gravy becomes thick and saucy.
Lastly add kasuri methi, sugar, salt and mix well. Simmer for a minute and remove from heat.