Put a few cups of water and some salt in a pot. Add washed soya chunks and boil for around 10 minutes or until you see white foam getting collected over water.
Strain the soya chunks, discard the water and wash the cooked chunks with more water. Press them between your palms to squeeze out all the water. Keep the chunks aside.
Roughly chop onion and garlic. Put in a grinder and make a paste. Take out the paste. Keep aside. In the same grinding jar, make a paste of tomato and green chilies. Keep that aside too.
Heat oil in a pot and add cumin seeds, bay leaf, and peppercorns. Saute for a few seconds or until the spices become fragrant.
Add onion paste and cook until it turns golden brown. In between, if the paste starts sticking to the bottom of the pot, add around 2 tablespoons of water and continue cooking.
Add turmeric powder, red chili powder, and coriander powder. Saute for about a minute.
Next, add tomato-green chili paste and salt. Cook until the tomatoes are nicely cooked and change their color to a brighter red. It will take around 10-12 minutes on medium flame.
Add potato cubes and soya chunks. Let them cook in the sauce without water for at least 2-3 minutes.
Add chopped ginger and around 2 cups of water. Mix everything and cover the pot. Cook until the potatoes are nicely cooked.
Remove the lid and switch off the stove. Add garam masala, crushed kasoori methi, and coriander leaves. Mix everything.
Serve hot with any Indian bread or rice.