Make sure your rice is washed and soaked before you begin.
Heat oil. Add cardamom, cinnamon, black pepper, cloves and star anise. Let this season the oil for about 15-20 seconds.
Add cumin. When it changes color and starts to sizzle/crackle, add the onions.
When the onions are light brown, add the ginger and garlic pastes and fry until raw smell goes away and onions are golden brown.
Add red chilli powder and turmeric powder, fry until the pungent scent of the turmeric goes away.
Add in potatoes and fry for one minute.
Add tomatoes and fry until tomatoes break down and oil separates.
Add 1 tsp red chilli flakes (optional, but highly recommended) and stir to incorporate into mixture.
Add about 1/4 cup of the boiling water and stir with your spoon a few times so that the onions start to color the water. This helps to draw out the color and flavor from the onions (and the rest of your masala) and infuse it properly into the rice. DON'T SKIP THIS STEP.
Add in the rest of the water, cover and bring mixture to a boil.
Add the rice and salt, mix gently to combine.
Cover and cook on medium-low heat. Adjust heat as necessary midway through cooking.
When the water is dry and the rice is almost fully cooked, put the rice on "dum" - decrease flame to a low simmer. Wrap the lid of the pot in a damp cloth and place a weight on top of the lid to weight it down. Cook for 10 minutes.
Taste the rice, if it is not fully cooked, leave on "dum" a while longer.
If rice is fully cooked, remove from heat. Remove the cloth and replace the lid. Grasping the pot by its handles, vigorously shake the pot so that everything is evenly distributed.
Serve with yogurt and/or mint chutney.
1 - To save time, soak the rice while you prep the ingredients. By the time you need to put it in, it will have soaked for about 30 minutes.