Gather all your ingredients and soak the rice in water.
Meanwhile, chop spinach and mushrooms separately.
Also, slice the onion lengthwise.
Take a pan over high heat and add oil into it.
Once oil is hot, add cumin seeds and let it crackle for few seconds.
Turn heat to low and add whole spices - bay leaves, cardamoms, star anise.
Gently mix everything together and add sliced onions along with ginger-garlic paste.
Combine everything and allow to cook over medium-low heat.
Once onions starts softening, add chopped spinach into the pan.
Combine well, spinach will start wilting. Cover with lid and allow it cook for 2-3 minutes over medium-low heat.
Next, add salt and seasonings into the pan. Also, add sliced mushrooms and gently mix everything together.
No need to add any water so far; mushroom and spinach has its own moisture.
In few minutes, veggies will softened and raw smell of spices goes off.
It's time to add soaked rice; drain off excess water and add rice into the pan.
Carefully mix everything and add 1 cup of water into the pan.
Cover with lid and cook over medium-low heat for 5 minutes.
After 5 minutes, remove the lid and check the rice. It should be almost 60-70% cooked.
Add another 1 cup of water and again cover with lid. Now, cook for 10 minutes over medium-low heat.
Remove the lid and turn off the heat. At this point; water should be completely evaporated and rice almost cooked. If not then allow water to evaporate by turning on medium-low heat.
Once rice is almost cooked (like 97-98%), do not mix it at all. Keep the pan aside and let it rest for about 5 minutes. During this time, all excess steam cools down, rice gets cooked perfectly in its own steam. Once rice holds its shape; you can gently mix it. Finally test the taste and if required add more salt.
And our mushroom and spinach rice is ready to serve. Pair it with some raita, chutney or papad.