Wash the fish and pat them dry. Make a paste of one onion. Squeeze out of the juice of the onion. Now add half of that juice to the fish. Strain the juice from the garlic paste and add the juice to the fish. Squeeze all the juice from ginger paste and add the juice to the fish.
Add salt to taste and lemon juice. Sprinkle 1 tsp turmeric powder and rub the fish in the marinade. Keep aside for 15 minutes.
Make a paste of one tomato and keep aside.
It's better to use a non stick frying pan or kadai for this dish since bhetki fish is very delicate and there are always chances of it breaking.
In a kadai, take 2 tbsp mustard oil. When the oil is hot, gently lower the fish in the oil. Fry on each side, on medium heat, for a little more than half a minute. Flip the fish when one side has got some colour.
Take the fish out of the kadai and keep aside.
In the same kadai, add another 1/2 tbsp mustard oil and a tsp of ghee. When it's hot, temper with 2 dried red chillies, and cardamom, cinnamon and cloves. Let them colour and release their fragrance.
Then squeeze out all the excess water from the onion paste (keep the water separately to be added later) and fry on medium to high heat.
After a couple of minutes, add the garlic paste and continue frying. And then add the juice of the onion and keep frying on high to medium heat.
Once everything has nicely browned, add the tomato puree, turmeric powder, red chilli powder and salt. Continue cooking on high heat till the raw smell goes off. While doing this, add all the leftover marinade into this. It helps in frying and has all the flavours too.
When the raw smell isn't there anymore, add half a cup of water. And gently drop the fish pieces into the gravy. Coat the fish in the sauce and then add 1 cup of coconut milk.
Sprinkle sugar and stir. Then let it simmer for two to three minutes, till you see oil starting to float on top.
Then you sprinkle Bengali garam masala powder, drizzle some ghee and finally pour in 1/2 cup of thick coconut milk. This should be a really creamy thick milk.
Split the green chillies and add them to the gravy. You can add them whole as well.
Very genty stir it once and simmer for a minute and then turn off the gas.
Serve Bhetki macher malaikari with steamed rice.