In a kadhai, heat 4 tbsp butter. Add bay leaf, cinnamon stick, black cardamom, cloves. Saute till they turns aromatic.
Add finely chopped onions and saute on low flame till color changes to slightly golden.
Add ginger-garlic paste. Stir and saute till raw smell goes away.
Add tomato puree. Stir and cook for about a minute.
Add turmeric, red chilli powder, coriander powder, cumin powder and salt to taste.
Stir well and saute this mixture on a low to medium flame, till you see fat releasing from the sides.
Then add cooked dal and give a good stir. Also add a cup of water or as required.
Cook on low flame for about 20-25 minutes. Keep stirring in between so that dal doesn't stuck to the bottom. (When simmering you can add more water if the gravy looks too thick or dry.)
Add 3 tbsp fresh cream and crushed kasuri methi. Mix well and simmer for more 5 minutes. (You can adjust the amount of cream as per your choice.)
Switch off the flame. Garnish with chopped coriander and fresh cream.
Your dal makhani is now ready to serve with parathas or rice.