Heat oil in a nonstick pan and sauté ¾ cup raw cashew nuts at medium flame until golden in color. Take them out in a plate/bowl and keep aside.
In the same pan with the same oil, sauté tofu until golden from all sides. Take them out in a separate plate/bowl and keep aside.
In the same pan ( do not any extra oil, just warm up the pan because the pan will be nicely tempered at this stage), add cumin seeds at high flame and let them crackle. Add onion, tomatoes, remaining ¼ cup raw cashew nuts, garlic and ginger. Sauté until they sweat and are aromatic. Turn off the flame and scoop them in a blender.
Add ¾ cup coconut milk to the same blender and blend until smooth and creamy. Heat up the same pan again. (Do not add any oil because it will still be greasy and that’s enough to cook the gravy). Pour the blended ingredients into the pan and cook it with bay leaf at medium-high heat until it starts to thicken. Stir at intervals so it does not stick to the bottom of the pan. (This may take about 4-5 minutes).
Add turmeric powder, chili powder, coriander powder, garam masala, kasoori methi, salt and sugar and stir. Cook covered at medium flame for 1 minute.
Stir in remaining ¼ cup coconut milk and water to it. Fold in sauteed cashew nuts and tofu. Mix everything and cook covered at low heat for 2 minutes.
Turn off the flame and remove the lid. Mix everything once again and garnish with cilantro. Serve it with rice, pulao, paratha,or naan.