In a heavy based frying pan, dry fry cinnamon, star anise, red chilli flakes, cloves, cardamom pods, mustard seeds and cumin until fragrant and mustard seeds begin to pop. This will only take a minute. Transfer to a mortar and pestle (or spice grinder) and grind into a powder, remove and discard the remaining cardamom shells. Set aside.
Into a food processor place the turmeric, ground coriander, onions, garlic, chilli, ginger, coriander, macadamias and coconut, process until you have a paste.
Heat the oil in a large heavy based saucepan, add the paste, frying for 5 minutes, add the reserved spice powder, stirring for a couple of minutes. Add the tomatoes and stock, bring to the boil, reduce heat and simmer for 5 minutes. Stir through the coconut cream and add the fish, simmering gently for 5 minutes or until the fish is cooked through. Season to taste and serve with basmati rice, pappadams, sliced cucumbers and coconut relish.