Ingredients
Method
Prep the Beef and Vegetables
- Cut the 600g beef chuck into large bite-size chunks, about 4cm, if it is not already cut, trimming away any thick outer fat but leaving the internal marbling. Pat the pieces genuinely dry with kitchen paper. Cover the 200g pearl onions with just-boiled water for 1–2 minutes, drain, then trim the root ends and slip off the skins, leaving the onions whole. Halve the baby potatoes if medium and leave very small ones whole, so every piece is roughly the same size. Mince the 4 garlic cloves, slice the 20g ginger, crush the garnish peanuts if they are still whole and pick the cilantro leaves. That thorough setup matters because dry beef browns instead of steaming, and even-sized potatoes cook through at the same rate in the braise.
Brown the Beef
- Season the beef all over with the 1 tsp fine salt and ½ tsp black pepper. Heat the 1 tbsp neutral oil in a heavy pot or Dutch oven over medium-high heat until it shimmers. Add half the beef in a single layer, with space between the pieces, and sear for 2–3 minutes per side without moving it, until deep brown on at least two sides. Lift it onto a plate, then brown the second batch the same way, about 10–12 minutes in total. Do not overcrowd the pot: packed pieces release water and turn grey instead of browning. If the oil starts to smoke hard, lower the heat slightly. That proper sear is what builds the browned edges and savoury fond that give the finished curry its depth.
Fry the Massaman Paste
- Lower the heat to medium and pour about 200ml of the coconut milk into the pot, scraping up the browned bits from the base as it bubbles. Simmer for 2–3 minutes, stirring, until it thickens slightly and looks glossy. Add 4 tbsp massaman curry paste, or up to 5 tbsp for a stronger curry, and fry for 2–4 minutes, stirring constantly, until it smells fragrant, darkens slightly and begins to release its oil. Add the minced garlic and sliced ginger and cook for 30 seconds more. If the paste catches on the bottom, lower the heat and loosen it with a spoonful of the remaining coconut milk. That frying stage is what cooks out the paste's raw, harsh edge, since under-fried paste leaves the finished curry tasting flat.
Build the Braise
- Return the browned beef and any juices from the plate to the pot. Add the remaining 600ml coconut milk, 350ml of the beef stock or water, the 2 tbsp fish sauce, 1½ tbsp palm sugar, 1 tbsp tamarind concentrate, the cinnamon stick, crushed cardamom pods, star anise and the bay leaf, if using. Stir in the 40g roasted peanuts. Bring just to a gentle simmer over medium heat, about 5 minutes, then reduce the heat to low, partially cover and cook for 1 hour 15 minutes–1 hour 30 minutes, stirring occasionally. Small, lazy bubbles should break at the surface, never a rolling boil. By the end the beef should be starting to soften but still offer some resistance. That low, steady simmer is what lets the collagen in the chuck melt slowly without tightening the meat or splitting the coconut milk.
Add the Potatoes and Pearl Onions
- Add the baby potatoes and peeled pearl onions and stir gently to coat them, pushing them below the surface of the sauce. Continue simmering, partially covered, for 25–35 minutes, until the potatoes are fully tender when pierced with a knife, the pearl onions are soft but still holding their shape and the beef is fork-tender. If the sauce thickens too much or begins to catch on the bottom, add the remaining stock or water, up to 100ml, a little at a time, so the curry stays loose enough to braise. Stir gently from the bottom so the potatoes stay whole. That timing is what lets the potatoes and beef reach tenderness together, rather than the potatoes overcooking into the sauce before the beef is genuinely ready.
Cook the Jasmine Rice
- As soon as the potatoes go into the curry, rinse the 200g jasmine rice in cold water, swirling it with your fingers, until the water runs mostly clear, then drain it well. Combine the rice and 300ml water in a small saucepan with a pinch of salt, if using, and bring to a boil over medium-high heat. Cover tightly, reduce to the lowest heat and cook for 12 minutes. Turn off the heat and leave it to rest, still covered, for 10 minutes, without lifting the lid, so it is ready just as the curry finishes. Fluff it gently with a fork just before serving. That undisturbed rest is what lets the trapped steam finish the grains evenly, so they come out separate and fluffy rather than sticky or scorched.
Reduce and Season the Curry
- Remove the lid and simmer for 5–10 minutes more, until the sauce is rich and thick but still spoonable and has turned a deep brown. Take out the cinnamon stick, star anise and bay leaf, along with any cardamom pods you can easily spot. Taste and adjust: add a little more fish sauce for salt and savouriness, up to ½ tbsp more palm sugar if it needs roundness and up to ½ tbsp more tamarind if it needs brightness. The finished curry should taste gently sweet, savoury and lightly tangy, aromatic rather than aggressively hot. Press a piece of beef with a spoon: it should break easily but still hold its chunk shape. That final uncovered simmer is what concentrates the sauce to the right body — thicker than a Thai red curry, yet looser than a Western stew gravy.
Serve
- Divide the fluffed rice among 4 bowls, placing it to one side, about 50g of dry rice per serving. Spoon the massaman curry beside it, giving each bowl about 150g of beef by raw weight, an even share of potatoes and pearl onions and plenty of sauce. Scatter the 3–4 tbsp crushed peanuts and the cilantro leaves over the curry. The sauce should sit glossy and deep brown against the white rice, with the potatoes and onions still whole. Serve hot. That finishing scatter is what adds genuine crunch and a fresh herbal lift against the soft beef and the rich, spiced sauce.
Notes
The low, steady braise deserves genuine recognition as the technique most directly responsible for whether the beef turns fork-tender or tight and stringy. The recipe's own critical point to "Keep it at a low steady simmer, never a hard boil" reflects how chuck needs well over an hour of gentle heat for its collagen to melt into gelatin — a fast boil squeezes the muscle fibres dry and can split the coconut milk.
Browning the beef in two batches deserves the same attention this technique receives throughout this collection's other braised meat dishes, because it sets the depth of the whole sauce. The recipe's own instruction, "Do not overcrowd the pot," matters because packed pieces drop the pan temperature and release water, so they steam grey rather than building the browned edges and fond that later dissolve into the curry.
Adding the potatoes and pearl onions late deserves genuine respect as the detail most directly responsible for whether they arrive whole or collapse into the sauce. The recipe's own warning to "Add the potatoes only once the beef has had a head start" reflects simple arithmetic: potatoes need 25–35 minutes, while the chuck needs nearly two hours, so adding them together leaves mushy potatoes around still-firm beef.
The spoon-pressure test deserves attention as a genuine, checkable readiness cue rather than a loose approximation of time. Chuck varies in thickness and connective tissue from one piece to the next, so pressing a chunk with a spoon — it should break easily yet still hold its shape — tells you far more reliably than the clock when the braise is done.
