Cut the paneer into cubes. Now if you are using store bought paneer, soak it in hot water for 5 minutes and then drain the water off.
If you want to fry the paneer, then fry the paneer in some oil, until golden brown from all the sides. Then add the fried paneer to hot water for 5 minutes to make it soft. Drain the water and set it aside.
In a heavy bottom pot, on medium flame, add 2 tablespoons ghee.
Once the ghee is hot, add thinly sliced garlic, roughly chopped ginger, and 1 or 2 green chilies. I add 2 Thai green chilies, but if you don't tolerate spice, just add 1 green chili.
Cook the aromatics until golden, and add the thinly sliced onions. Add a pinch of salt and sauté, cook the onions until golden brown.
Measure 3 tightly packed cups of spinach before chopping. I use baby spinach. If your spinach has hard stems, discard them, and use the tender leaves only. The hard stems can make your curry taste bitter.
Cover and let the spinach cook for 1 minute.
Once the spinach is cooked, cool the onions and spinach mix down.
Once it is cool, add it to the blender jar. Now add half a cup of water and blend it into smooth puree. Keep it aside.
Now in the same heavy bottom pot, add ghee. Once hot, add bay leaf, cinnamon stick, and green cardamom pods. You can also add 2 cloves if you wish to.
Now add finely chopped or pureed tomatoes, and add turmeric, cumin powder, coriander powder, garam masala and salt. Mix it well, and cover. Let it cook until tomatoes are mushy and ghee seperates.
Now to this, add the prepared spinach puree. Mix it well. Let the curry come to a soft boil.
Add the paneer cubes to the curry. Crush 1 tablespoon of kasuri methi between your palms and add it to the curry. Mix it well, and add a little water if required to adjust the consistency of the palak paneer.
Mix it well, and turn off the flame. Add heavy cream!