Coarsely chop the cabbage. Thinly slice the cucumber on an angle. Cut the tomato into 2cm-thick wedges. Thinly slice the chilli, removing the seeds if you prefer less heat (see cooking tip). Finely chop the peanuts. Cut the fish into large chunks. Rinse the rice until the water runs clear.
Step 2 — Cook cabbage
Heat 1½ tsp oil in a medium saucepan over high heat. Cook the cabbage, stirring regularly, for 2 mins or until softened.
Step 3 — Cook rice
Stir the rice and 250ml (1 cup) water into the cabbage and season with salt. Cover and bring to a simmer. Reduce the heat to low and cook, covered, for 12 mins or until tender and the water is absorbed. Turn off the heat and stand, covered, for at least 5 mins. Fluff the rice with a fork.
Step 4 — Pickle cucumber
Meanwhile, put the cucumber, 2 tsp white vinegar and ½ tsp sugar in a bowl, season with salt and pepper and stir to combine. Set aside to pickle, tossing occasionally, until needed.
Step 5 — Start curry
Heat 2 tsp oil in a medium deep frypan over medium-high heat. Add the tomato, curry powder and half the chilli and cook, stirring, for 30 secs or until fragrant. Stir in the coconut milk, 125ml (½ cup) water, 1 tsp sugar and 1 tsp soy sauce and bring to the boil. Reduce the heat to low and cook, covered, for 8 mins to develop the flavour.
Step 6 — Finish curry and serve
Add the fish to the curry, then increase the heat to medium. Cook, uncovered, for 7 mins or until the fish is cooked through. Add 1 tsp cucumber pickling liquid to the curry and stir to combine. Taste, then season with salt. Divide the rice and curry among bowls. Top with the pickled cucumber and scatter with the peanuts and remaining chilli to serve.