Rinse the black whole urad dal and rajma well. Add it to a bowl. Soak in water for minimum 8 hours or overnight. Make sure water is 1 inch above the dal.
Once soaked, rinse again and add it to pressure cooker along with the cinnamon, cloves, green cardamom, black cardamom if you have it, salt, and stock.
Instant Pot settings: High for 30 minutes.
When ready, use a masher or an immersion blender to get it blended.
Tomatoes
Whiz the tomatoes to a fine puree and set it aside. (Puree should come to 1 cup.)
To a large pot melt the butter.
Add the cumin seeds and saute until they splutter.
Whiz the onion until chopped finely and add to the pan.
Add the ginger and garlic pastes, and salt to taste.
Saute for a minute.
Add prepared tomato puree.
Saute for a minute then cook until raw smell leaves.
Add the spices and saute until no water remains and it is thick and almost paste like.
Add the mashed dal.
Mix it well. (Add water if it's a really thick consistency. I didn't have to, but it may be needed.)
Cover with lid and simmer for 15 minutes minimum, stirring occasionally.
Finishing
Add the spices, cream, and butter, mixing well.
Check for salt and adjust to taste.
Notes
* I didn't have any black cardamom, so I added a couple more green cardamom.