Heat the butter in a saucepan over low to medium heat; once melted, add the cumin seeds.
Once the cumin is fragrant, add the other whole spices: bay leaf, black and green cardamom, cloves, and cinnamon stick. Mix well and allow them to release their aroma in the butter for about 30 seconds to a minutes.
Next, add the sliced onions and a pinch of salt. Mix well and cook until the onions become soft and golden, which will take approximately 4-5 minutes.
Add the ginger garlic paste and green chillies to the onions, and mix well. Cook for 30 seconds or until the smell of rawness of the paste has gone.
Once done, add the tomato puree and incorporate it to the curry. Once it simmers, allow it to cook for 1-2 minutes.
Finally, add the ground spices: garam masala powder and Kashmiri red chili powder [or red chilli powder if you prefer dal makhani hot], as well as a pinch of salt. Mix the spices well and allow them to cook until they separate from the oil, which will take approximately 1 to 2 minutes.
At this stage, add the cooked urad dal and red kidney beans to the masala. Add 2 cups of water and mix well.
Cover the saucepan with a lid, reduce the flame to low, and allow the curry to simmer for 30-45 minutes. This step is important, so the longer, the better, as the lentils and beans will become softer and mushier, creating a smooth and creamy texture.
Finally, warm the kasuri methi in the microwave for 10 seconds, then using the palms of your hands, crush them in the dal makhani.
At this stage, add the cream and the optional sugar too.
Mix everything well, taste for salt and add some water if the consistency of the dal makhani is too thick.
Bring to a light simmer for 2 minutes, then garnish dal makhani with salted butter and serve with roti, jeera rice, or any side of choice!