In a pressure cooker pan take black gram (black whole urad ) and kidney beans (rajma).
Wash 2-3 times with water and then soak with 3 cups of water overnight.
The beans are soaked well . Put salt in it and pressure cook for 12-15 whistles on high heat and 5 whistles on low heat.
Let the pressure cooker cool by itself. Open the pressure cooker. The beans should be soft and mushy. (if not soft then add some water and again pressure cook for 5-6 whistles).
With the back of a big spoon mash the cooked beans or like I mashed with a potato masher.
Heat a heavy bottom pot and add butter and ghee.
Add black cardamom, green cardamom, bay leaf. When it becomes aromatic add green chili, cumin seeds and saute.
Add the very finely chopped onion and green chili (I had chopped one chili along with onion and added another one in the tempering / tadka in the step above). The butter and ghee is also heated up well by then and hence the onions looked brown. (but it gave a very good smokey aroma to the dal ).
Add little salt and saute till the onions are translucent. Then add the fresh ground ginger garlic paste (fresh taste gives a better taste to the dal ). Saute till the raw aroma of ginger garlic goes away for around a minute on medium heat.
Add the tomato puree or very finely chopped tomatoes.
Add little salt and mix and cover and cook for 4-5 minutes on medium heat till tomatoes soften.
The tomatoes are nicely soften. Add spices - red chili powder and garam masala. Saute till spices are mixed well.
Add tomato ketchup. (In case you use store brought tomato puree then do not add ketchup and add 1 tsp of sugar instead).
Add the cooked and mashed dal along with the water.
Add another 3 cups of water (and add more hot water later if needed to adjust the consistency). The dal will look thin and runny but will start getting the consistency once it is simmered and cooked.
Let it cook for couple of minutes on medium heat. In the mean time mash the dal as you cook with a potato masher.
Bring the dal to a boil on medium heat.
Now low the heat and cover and simmer the dal for 1.5 hours stirring and mashing in between. After 1.5 hours add the remaining butter.
Mix dal, cover and simmer for 5 minutes. The fat from the butter and ghee will float.
Add the kasuri methi crushed between the palms. Mix well and cover and simmer for 10 minutes.
Mix well and simmer keeping the pot open for 5 minutes.
Add chopped coriander and mix well..
The dal is ready. The consistency looks so perfect, creamy and smooth.
Remover the slow cooked , simmered dal makhani in a serving bowl and garnish with cream and chopped coriander and serve with naan or paratha or tandoori roti or rice.
I had served the dal makhani with homemade garlic mint naan , salad and pickle for a delicious dinner. The leftover can be refrigerated for couple of days in an airtight container and enjoyed. The dal makhani can be freezed for a month but avoid adding cream to it.