Heat a film of oil in a large frying pan over medium heat, brown the beef on each side and then transfer to a large pot or casserole dish.
Reduce the heat to low, add the onion, garlic, carrot, cook for 5 minutes until the onion softens a little. Add the chilli, ginger, cinnamon and star anise and cook for a further minute.
Pour in the water, chilli garlic sauce and oyster sauce.
Bring to a boil and then reduce to a low simmer and cook for 2 3/4 hours or so until the meat is tender.
When the meat is almost ready, cook the rice according to packet instructions.
Cook the spinach in a pot over medium heat until wilted, drain well.
Lift the meat from the sauce and slice against the grain. Serve with rice and spinach alongside, spoon over some of the sauce.