Begin by rinsing the kidney beans thoroughly. Place them in a pan and cover with water, then boil until the beans are soft and cooked through. Set aside the beans and save the cooking water.
Heat oil in a large pan over medium heat. Once the oil is hot, add the cumin seeds, black peppercorns, cloves, bay leaves, black cardamoms, and cinnamon stick. Sauté the spices for about one minute until they become aromatic.
Add the chopped onion to the pan and cook for 6 to 8 minutes on medium heat, stirring occasionally, until the onion turns a golden brown colour.
Pour in 2 tablespoons of water and cook for an additional 2 to 3 minutes to help release the onion’s colour and soften it further.
Stir in the ginger paste and garlic paste, cooking for about one minute until the raw smell disappears and the mixture is fragrant.
Add the chopped tomatoes and cook until they soften completely, stirring frequently to prevent sticking.
Mix in the turmeric, salt, chilli powder, and garam masala, cooking the spices with the tomato mixture for 3 to 4 minutes to deepen the flavours.
Gently fold the cooked kidney beans into the spiced mixture and cook for another 2 to 3 minutes, allowing the beans to absorb the spices.
Pour in 600 ml of the reserved rajma cooking water. If you don’t have enough leftover, top it up with regular water to reach this amount.
Bring the mixture to a boil, then add the rice. Stir well to combine everything evenly.
Cook the rice on high heat until most of the water has been absorbed, then cover the pan with a tight-fitting lid.
Reduce the heat to low and let it simmer for 15 minutes, allowing the rice to fully cook and flavours to meld.
Remove from heat and let it sit covered for a few minutes before serving hot.