Heat oil in a large saucepan. Fry the onions and green chillies till wilted.
Add the ginger garlic paste and tomatoes and cook till wilted.
Add all the masala powders and saute till nicely fried, ensure not to burn.
Add the fish and slowly mix in with the masala. Sprinkle salt and cook on low flame for around 10 minutes. Add the water and allow it to boil.
Meanwhile, in another saucepan, heat oil and fry the whole spices.
Add in the drained rice and saute till crisp.
Slowly add this to the boiling fish mixture and give a small stir. Adjust seasoning.
Keep on high flame allowing it to come to a rolling boil. Now reduce the flame and cook on simmer on closed lid till the rice is done.
Give it a very soft stir, ensuring that the fish doesn't break. Serve hot sprinkled with coriander leaves.
Notes
The cook-time mentioned for the fish is if you are using thick cuts of fish. If you are using boneless chunks or small pcs of fish, only flip them till white, then add water to boil.