Soak the urad dal and kidney beans overnight or for at least 8 hours.
Pressure cook the urad dal and kidney beans. Drain the soaked dal. In an electric pressure cooker like an Instant Pot, cook the dal and kidney beans with 2.5 cups water and 1 tsp salt for 30 minutes on high pressure. Allow a natural pressure release.In a regular pressure cooker, it should take around the same total time. After the first whistle, reduce heat to low for 10-15 minutes. In a medium saucepan, heat 1.5 tbsp avocado oil. Once the oil is hot, add the whole spices and mix them around the pan.
Add the chopped onions and a pinch of salt. Let the onions cook for at least 7-8 minutes, slightly beyond the point when they start turning translucent.
Add garlic and ginger. Stir for another minute before adding coriander and cumin. Stir frequently for a minute to make sure the spices adhere to the onion, ginger, and garlic rather than the bottom of the pan.
Add the tomato paste or diced tomatoes. Increase the heat slightly and cook until the tomato juices have mostly evaporated. It should take 5-7 minutes.
Add the pressure cooked lentils and any cooking water remaining in the pressure cookers. Add 1 cup water, reduce heat, cover, and simmer for 30 minutes.
Finish with garam masala and kasoori methi. Stir in well and add cashew cream. Save some cashew cream for garnishing!
At this point, add more water if necessary. While it should be cooked in 30 minutes, simmer for up to an hour for the flavors to really seep in. Finish with lemon juice and cilantro.