
Wash the dal in plenty of cold water, rubbing it between your palms to remove any surface dirt. Repeat this washing process, changing the water 3 times. Soak the dal in freshly-boiled water, along with a pinch of bicarbonate of soda for 8 hours or overnight.
Through a colander, tip away the soaking liquid from the daal. Give the daal a final rinse under running water.
Next, add the urad to a pressure cooker or pressure pot. Cover with 1.2L room temperature water. Add the bay leaves and black cardamom. Do not add salt. Cook with the lid on until tender. For regular pressure cookers, this will be approximately 9 whistles or 20 minutes on HIGH if using an Instant Pot (vent closed).
Once the time is up, carefully open the valve to quick release the steam. Open the pot and check the dal is tender. Transfer the dal and ALL of the cooking liquid to a separate large bowl (be careful, it will be very hot).
Rinse and dry the pan or bowl of the Instant Pot. Over a low heat, melt the butter. Add the cumin seeds, coriander seeds, ginger, garlic, green chilli and onion. Cook over a medium heat (sauté mode) for 10-12 minutes until the onion has browned.
Add the chilli powder, turmeric, tomatoes, kasoori methi, garam masala and salt. Sauté the masalas, stirring all the time for 10 minutes.
Tip in the cooked daal, along with the cooking liquid and kidney beans in their water. Mix well. Take a sturdy spoon or ladle and begin to mash the daal against the base and sides of the pan to crush some of them. Whisk this for a minute or so. This is what thickens the dal for a luxuriously creamy restaurant-style finish. Fit the lid onto the pot (vent closed) and slow cook for a minimum of 1 hour or up to 15 hours. After cooking you may need to adjust the consistency with some hot kettle water.
When you're ready to serve, add the cream, some of the crispy fried onions and fresh coriander, Stir well for 4-5 minutes.
Ladle into bowls and if desired, garnish the dal with a swirl of cream, chopped coriander, fried onions and a dollop of butter.