Add urad dal and rajma to a large pot and rinse them well a few times. Drain the water and soak them in 3 to 4 cups of water for 7 to 8 hours. To reduce the soaking time, you may soak them in boiling hot water for 4 to 5 hours.
Later drain the water and rinse them well.
Pour 4 cups fresh water and pressure cook for 10 whistles on a medium heat. You can also cook in a pot until soft and tender adding more water whenever needed. If cooking in instant pot, pressure cook on high pressure for 20 mins.
Both urad dal and rajma must cook to very soft. When mashed with a spoon the dal and rajma must be soft and get mashed well easily. If not then pour another half cup hot water and continue to cook for another 3 to 4 whistles on a medium heat.
Heat a heavy bottom pot with butter & ghee. If using whole spices, add them and saute for half a minute. Then add onions and fry until they turn golden.
Stir in ginger garlic paste and saute for 1 minute until the raw smell goes away.
Then transfer tomato puree and cook for 3 to 4 minutes until thick.
Add salt, chilli powder & garam masala. Saute well until the masala smells good and turns thick.
Mash the cooked urad dal slightly and pour it along with the stock. Pour another 1 cup hot boiling water & mix.
Cook on a low flame until the dal thickens stirring often in between to prevent burning the bottom. After 60 mins, the dal thickens.
Add another ½ to 1 cup hot boiling water and continue to cook until thick. This takes another 30 mins. Totally cook for about 90 mins from the time you added the cooked dal to the pot.
Then add kasuri methi and pour cream. Stir and cook again for 6 to 8 mins until it becomes thick and creamy.
Taste and add more salt if needed. Add butter and mix well.
Place a small piece of foil or a tall steel cup on the dal makhani. Hold 1 to 2 inch piece of natural wood charcoal with a tong and burn it on direct fire until red hot. Then place it on the foil kept over dal or in the steel cup.
Quickly pour ¼ tsp ghee on the hot coal. Immediately cover the pot and allow to smoke for 3 to 4 mins. For stronger flavor, add another ¼ tsp ghee on the coal and repeat the smoking.
Garnish dal makhani with butter or cream & serve with fluffy Basmati rice or naan.
Press SAUTE button on the Instant pot. Add ghee and butter to the steel insert.
Once the butter melts, add onions and saute until transparent. Add ginger garlic paste and saute for 30 seconds.
Pour the tomato puree, red chilli powder & garam masala. Saute for 3 to 5 mins.
Drain the water from the lentils and add them. Pour 3 cups water and deglaze the pot by scrubbing the bottom with a wooden spatula.
Press CANCEL button. Secure the Instant pot with the lid. Position the steam release handle to sealing.
Press PRESSURE COOK button and set the timer to 30 mins.
When the IP finishes it will beep. Wait for the pressure to release naturally.
Open the lid. You will see the dal being runny at this stage. Add salt & slightly mash the urad dal, not rajma.
Press SAUTE button. Adjust the setting to LOW by pressing the saute button twice.
Cook further stirring often until thick. When most of the moisture evaporates, dal turns thicker. Optional - I prefer to add 1 more cup of hot water in 2 batches, ½ cup each time. Cook further until really creamy and thick.
Then add cream and kasuri methi. Continue to cook until creamy.
Stir in the butter and garnish dal makhani with cream.