Add the diced onion and cook over low-medium heat for 5-7 minutes, stirring occasionally, until softened. Avoid browning the onion to keep the gravy pale. Meanwhile, prepare the cashew milk.
While the onion cooks, prepare the cashew milk by blending the cashews with 60ml of water, until completely smooth.
Add the garlic, ginger and coriander stems to the softened onion and cook for 1 minute, until fragrant.
Then add salt, pepper, garam masala and fennel powder, and cook for 1 minute, stirring continuously.
Pour in the prepared cashew milk and yoghurt, stir to combine and cook for a minute.
Pour in the hot water and stir well. The gravy will look thin at first, but it will thicken into a luscious gravy as it comes to a gentle simmer.
Return the cooked meatballs to the pan and gently stir to coat them in the gravy. Cover and simmer over low heat for 2-3 minutes to allow the flavours to come together. Remove the lid, taste and adjust the seasoning before serving. Garnish with fresh coriander.