First make the fish cakes by roughly chopping the fish into large pieces and then adding it to your food processor along with all of the other ingredients. Pulse until everything is well combined.
Use your hands to form the mixture into medium-sized patties. You will have approximately 8-10 fish cakes.
Place the patties on a plate and then put them in the fridge to firm up a little. (The fish cakes can be made ahead of time and left in the fridge for up to 8 hours).
Then make the tomato broth by melting the butter in a large, wide pan. Add the onion, cover the pan and cook the onion gently over a low heat until very soft, about 10 minutes.
Stir in the spices and garlic, and then add the broth, tomatoes, salt and pepper. Simmer the tomato broth uncovered for about 15 minutes until thickened.
While the tomato sauce is cooking melt some butter in a large frypan and gently fry the fish cakes for about 5 minutes each side, until lightly browned. You can do this in batches.
Stir the coriander and mint into the tomato broth (setting aside a little for sprinkling over the finished dish) and then carefully place the patties in the tomato sauce. Cover the pan and simmer over a low heat for 15 minutes.
Turn off the heat and let sit for 5-10 minutes for the flavours to develop. Sprinkle with the herbs and serve with cauliflower rice or basmati rice and a green salad or sautéed silverbeet.