Turn on the Instant pot in saute mode on medium heat and add oil and ghee ( you can choose to add all oil or all ghee too ).
Once the oil is hot, add the whole spices and turmeric powder and saute for few seconds until you get a nice aroma.
Then add chopped onion with a little salt (to help onions cook faster) and saute them for 3 to 4 minutes until they start turning golden brown.
Add ginger-garlic paste, coriander powder, and red chili powder and mix well. Deglaze the pot by adding a couple of tablespoons of water if required and scrape the bottom to make sure nothing is sticking.
Now add tomato puree, a little more salt for the tomatoes, sugar, and cook covered with a stainless steel or glass lid for around 3 minutes.
Now add the soaked and rinsed kidney beans, water, salt to taste and mix really well. Scrape the bottom to make sure nothing is sticking.
Turn off the saute mode, close the Instant pot lid with the vent in SEAL position and turn on Bean/Chilli mode for 35 minutes.
Once the Instant pot turns off, let the pressure release naturally for 10 minutes and then move the vent from SEAL to VENT position to release the rest of the pressure.
Once the pressure pin drops after the pressure is released, open the lid and turn on the Instant pot again on saute mode again to reduce it to the right consistency.
If you prefer, crush some of the beans with the back of the spatula to make the curry thicker or you can take a ⅓ or ½ cup of beans in a blender to puree and add the puree back into the curry.
Also, add Kasuri Methi by crushing the dry leaves between your palms and garam masala powder and mix well.
Garnish with cilantro and serve with plain rice or jeera rice or any kind of Indian flatbread like roti, naan, phulka, etc.