Gently remove soya chaap from the sticks. You can easily slide them using a fork. Cut the chaap into bite-size round or oval pieces.
Marinate chaap with salt, ginger-garlic paste, curd, red chili powder, and turmeric powder. Mix to coat each piece with the marinade masala. Keep aside for 30 minutes to 1 hour.
Heat 4 tablespoon of oil in a pan for shallow frying. Once the oil is hot, fry the soya chaap till crisp and golden from both sides. Transfer fried soya chunks to a bowl and set aside.
Blend fresh tomatoes, ginger, garlic, Kashmiri red chilies, and hot water to a smooth paste. Keep it aside.
Heat remaining oil in the same heavy bottom pan or kadhai.
Add whole spices (green cardamom, black cardamom, bay leaf) and saute for 40 – 50 seconds to release their aroma. Next, add onion, and fry till golden.
Add tomato paste, turmeric, red chili powder, and coriander powder. Fry over low heat till oil separates from the masala.
Add 1 cup water to make gravy, kasuri methi, and garam masala. Allow the curry to simmer over low heat till the sauce thickens.
Add fried soya chaap, mix, and simmer the curry once again covered for 5 minutes. This step ensures that chaap absorbs the flavor of the gravy.
Garnish with fresh coriander leaves. Serve Punjabi Soya Chaap Masala with chapati, rice or lachha paratha.