Heat oil (or ghee) in a nonstick pan or Kadai. Add whole spices like cumin seeds, bay leaf, cinnamon, cloves, and cardamom. Saute for a few secs or till aromatic.
Next, add onion, and green chilies. Saute till the onions are soft and light brown.
Add ginger-garlic paste and saute for 1-2 minutes till the raw smell disappears.
Then add finely chopped tomatoes (or tomato puree), turmeric powder, red chili powder, garam masala, and salt. Cook till tomatoes turn soft and mushy. This can take 3-4 minutes.
Then add the mint leaves, and coriander leaves. Saute for another minute.
Finally, coconut milk, water, and basmati rice. Mix everything.
Close the lid and cook on medium-heat until the water is absorbed, and then turn off the heat and leave it covered for 10 minutes.
Open the lid and gently fluff up the rice. Tomato Rice is ready, serve with yogurt, or raita.