Take 2 pieces of tomatoes (medium size, cut roughly) in a mixer and add 6 pieces of green chilies and 1 tsp of Kashmiri red chili powder to it. Blend them to a fine paste.
Now, heat 2 tbsp of cooking oil in a wok or kadai and add 1 piece of bay leaf, 1 piece of cinnamon (1-inch stick), 1 pod of black cardamom (whole), 3 pods of green cardamom (whole), 1 tsp of cumin seeds, and 2 tsp of garlic (finely chopped) into it. Stir and fry them for about 30 seconds on a medium flame but do not let the garlic to turn brown. At this stage, add 2 pieces of onions (medium size, finely chopped) into it and fry them on a medium to high flame until they turn slightly golden brown.
At this point, turn the flame to medium and add 1 tsp of ginger-garlic paste into it and fry for about 10 seconds.
Now, add ½ tsp of turmeric powder and 1 tsp of Kashmiri red chili powder into it. Mix and cook for 10 seconds or so on a low flame.
Then, add the tomato paste and 1 tsp of salt into it. Turn the flame to high and mix it nicely. Cook it until the oil starts to separate.
Now, add ½ tsp of coriander powder, ½ tsp of cumin powder, and ¼ tsp of Kasuri Methi into it and mix them nicely. Cook for another 10 seconds on a low flame. (Pro tip: At this point, the masala might stick to the kadai. Add a little bit of water to prevent it).
Now, take 12 pieces cashew nuts (broken into small pieces, soaked in hot water for at least half an hour and strained) in a mixer, add a little bit of water and make a smooth paste.
Add the cashew paste to the masala. Mix it nicely on a high flame. Then, turn the flame to low now, cover it and cook it for 4 to 5 minutes until the masala releases oil. (Pro tip: Add about 2 tablespoons of water if the masala is too dry and sticky).
Now, add 1 tsp of garam masala powder and a handful of finely chopped coriander leaves to into it and mix everything nicely. Cook for another minute or so on a low flame. Switch off the gas stove when done.
Now, heat a separate pan on a medium flame and melt 3 pieces of butter cubes and add 200 grams of paneer (cut into small cubes), ¼ tsp of turmeric powder, ¼ tsp of Kashmiri red chili powder, ¼ tsp of Kasuri Methi and salt to taste. Mix everything nicely. Cook it for about 2 to 3 minutes on a medium to high flame until the moisture from the paneer cubes is gone.
Now, put these fried paneer cubes in the gravy. Switch on the gas stove to low and mix them nicely to coat the masala on all paneer pieces. Finally, add a handful of finely chopped coriander leaves and 1 tsp of fresh cream into it. Mix them all nicely and it is done.
Your tasty and spicy homemade paneer butter masala is ready to serve. Transfer it into a plate, garnish it with some more fresh cream and a few chopped coriander leaves and enjoy it with roti or naan.