First of all grind the tomatoes and onions separately and beat the yogurt to make it smooth and keep them aside.
In a pan heat oil over medium heat. Add butter and once it’s melted, add cumin seeds, bay leaves and cinnamon stick and sauté for a minute.
Add ground onion paste to it and sauté till it turns pink.
Add ginger garlic paste and sauté again till the raw smell fades away. Add all the spices (Garam Masala, Kashmiri Red Chilli, Turmeric Powder, Coriander Powder, Cumin Powder) except salt now and sauté again for a minute.
Add puréed tomatoes and sauté till all the moisture is evaporated.
Now add yogurt and 1/3 cup of water and continuously stir it till it starts boiling.
Add 2 tablespoon of Kasuri methi and salt now and mix. Cover the pan with lid and let it cook for 7-8 minutes.
Open the lid and sauté again for 2-3 minutes till you start seeing oil on the edges. Now add paneer cubes and rest 1 tablespoon of Kasuri methi to it and mix well. Sauté for 2-3 minutes and switch off the heat.
Transfer it to a serving bowl and enjoy it with parantha, naan or bread of your choice.