Parboil/ microwave the veggies until slightly tender and keep aside.
Heat 1tbsp oil in a pan, add the onions and saute till browned around the edges and starting to caramelized. Remove onto a plate, cool and grind to a paste.
Add 1tbsp oil to the same pan, add the peppers and cook till tender. Add the remaining boiled veggies and saute till lightly crisp around the edges. Remove onto a plate. You can skip this step all together and add the veggies directly to the gravy but I find that the veggies hold shape better in the curry if fried.
In the same pan, add more oil or ghee if needed, then add cumin seeds and bay leaf. Once the seeds start to splutter, add the onion paste, ginger+garlic paste and cook for 1~2 minutes.
Next add the tomato puree along with red chili powder, ground coriander, ground cumin, turmeric, garam masala and salt. Mix well and cook for a minute. Add some water if the spices start to burn.
Now add the cooked veggies and paneer; mix well to coat with the spices. Cook for 2~3 minutes.
Stir in the cashew butter (or roasted cashew paste) and mix well. Add more water if needed and cover and cook for 7~8 minutes.
Lower the heat and stir in cream and cook till heated through. Finally sprinkle the chopped cilantro and turn off the heat. Serve with khamiri roti or any other Indian bread or Pulao.