Heat a large skillet over medium heat and add a tablespoon of oil. Once the oil is heated, add the chopped onion and sauté for 4-5 minutes until they turn translucent.
Remove the cooked onions from the skillet and transfer them to a blender. Add ¼ cup of water and blend until you have a smooth paste. Set the onion paste aside.
In the same skillet, add another tablespoon of oil. Once the oil is heated, add the paneer cubes and cook for 4-5 minutes, flipping them often, until they turn golden brown on all sides. Transfer the cooked paneer cubes to a plate.
To the same skillet, add the chopped tomatoes, cashews, cloves, cardamom, cinnamon, and ½ cup of water. Cover the skillet with a lid and cook the tomatoes over medium heat for 7-8 minutes until they turn mushy.
Once done, transfer the cooked tomatoes to a blender and blend until you have a fine paste. Set the tomato paste aside.
Heat the same skillet over medium heat and add the remaining 1 tablespoon of oil. Add the bay leaf, ginger garlic paste, and cumin seeds. Sauté for a minute until fragrant.
Add the tomato paste to the skillet and cook for a couple of minutes. Then add the onion paste.
Add the spices: turmeric powder, red chili powder, coriander powder, garam masala, and salt. Cook for 2 minutes, stirring well, and then add the remaining ¼ cup of water.
Stir in the heavy cream and cook for 3-5 minutes until the sauce thickens and everything comes together.
Finally, add the pan-fried paneer cubes to the skillet and cook for 2 minutes to allow the flavors to meld together.
Garnish the paneer pasanda with fresh cilantro and slivered almonds.
Serve the paneer pasanda with rice or naan.