Heat 2 Tablespoons of oil in a pan.
Add the paneer cubes and fry for 2 minutes by flipping them. When they become golden in color, remove them from pan and put them in a bowl of warm water. In this way, fried paneer will remain soft.
Heat another Tablespoon of oil.
Add onion slices and cook for 2 minutes in medium flame.
Add the ginger and garlic. Cook for 2 minutes.
Then add tomato chunks and green chilies. Cook for 2-3 minutes.
Add the cleaned spinach leaves, cook on high flame for 3-4 minutes. Spinach will release water, dry it out by cooking a little further.
When everything will become soft and light brown in color, put the entire mixture in a blender along with little water. Blend it to a smooth paste.
Heat the remaining oil and 1.5 Tablespoons of butter.
Add all of the spice powder, cook for a minute on low flame.
Then add the onion spinach paste, cook for 5 minutes on medium flame.
Add salt and half Teaspoon of sugar. Mix well for a minute.
Add the fried paneer along with half of the water in which paneer have been soaked.
Cook for 2 minutes on medium flame.
Add garam masala powder, chat masala and kasuri methi. Mix well for 2 minutes.
Lastly add the remaining butter and heavy cream. Mix well for 1-2 minutes then turn off the heat. Let the curry rest for 30 minutes then serve.