Clean the rice by rinsing it with water a couple of times. Then add more water until the rice is fully covered. Keep aside for 20 minutes. Once its has been soaked for 20 minutes, drain out all the water from the rice and keep aside.
Prep all the other ingredients while the rice is soaking. Heat a deep pot with a lid or dutch oven( with lid) to medium low heat. Add the ghee or oil and heat it for a minute.
Now add all of the whole spices and let it temper/bloom in the fat. You will see the cumin and fennel seeds sizzling in the oil. Once you reach this state, add the chopped onions. Saute and let it cook for 3-4 minutes. Now add the ginger-garlic paste and mix well. Cook for another 3-4 minutes.
Add in the chopped tomatoes. Add the powdered spices and mix well. Let it cook for 5 minutes.Season with some salt. Now add the slit chillies, chopped mint, cilantro and mix well. After a minute, add the mushrooms. Then mix in the yoghurt as well.
Increase the heat to medium and mix in the rice. Add the water along with coconut milk. Add salt to taste and mix. Close pan/dutch oven and let the rice cook for 8-9 minutes.
Open the lid to check if rice is done. If you feel it needs more time and there is not much liquid left, add 4-5 tablespoons of water and close the lid again for 1-2 minutes. Reduce heat to medium low.
Open and taste to see if it needs more salt. If yes, then add accordingly and mix gently. Turn off heat and serve hot with raita, pickles or any gravy of your choice.