[1]Basic bhuna method.
Take all your ground spices & blend to a paste with a little water in a cup - aim for 'tomato ketchup' consistency.
Heat your ghee. If you have any whole spices, mustard seeds etc, drop them now [this kind of cheats in a quick bhogar without burning anything], then a quick stir & add your bhuna mixture. Fry gently until the water evaporates off & the oil fully blends with the sauce base, then starts to separate out again. Garlic/ginger puree can go in now. Keep it moving all the time to blend & prevent burning. Drop your onion puree & keep this going until your onions clarify. Watch out for it spitting, rather gloopily.
Salt to taste [but check again later after any other ingredients go in, under-salting will really weaken the flavours].
That's your base. Simmer for at least 2 hours.
Anything else after this point defines your "curry".
Late edit…
I only just noticed you have processed tomatoes and coconut milk in your recipe. That's an odd combination. Northern dishes would go with the tomatoes, Southern with the coconut. Keralan cuisine would use both, but the tomatoes would be fresh. The rest of your ingredient list would be better suited to a Northern dish, so I'd definitely lose the coconut next time. All of the above methods are 'Northern' methods. Southern dishes use a lot of dry marinades, again contra to the suggestions above.
Also, depending on the 'wetness' of your tomato product, that's overall going to be way too watery. That's why my recipe idea above uses purée, to keep the added water content right down.