01 - Pat the beef ribs dry with paper towels and season generously with salt and black pepper on all sides.
02 - Heat vegetable oil in a large Dutch oven or heavy pot over medium-high heat. Sear the ribs on all sides until deeply golden brown, working in batches if necessary to avoid overcrowding. Transfer seared ribs to a plate and set aside.
03 - Reduce heat to medium. Add onions, garlic, ginger, lemongrass, carrots, celery, and bell pepper to the same pot. Sauté for 5–7 minutes, stirring occasionally, until vegetables have softened and release their fragrant aromas.
04 - Stir in turmeric, coriander, chili flakes, and bay leaves. Cook for 1 minute, stirring constantly, until spices become fragrant.
05 - Add chopped tomato to the pot and cook for another 2 minutes until it begins to break down and release its juices.
06 - Return the seared ribs to the pot, including any accumulated juices. Stir in fish sauce, soy sauce, and palm sugar until evenly distributed.
07 - Pour in coconut milk and beef stock, ensuring the ribs are mostly submerged. Bring the mixture to a gentle simmer over medium heat.
08 - Cover the pot with a tight-fitting lid. Reduce heat to low and maintain a gentle simmer for 2 to 2½ hours, or until the meat is fall-off-the-bone tender. Occasionally skim off any excess fat that rises to the surface.
09 - Taste the sauce and adjust seasoning with additional salt, pepper, or fish sauce as desired. Remove and discard bay leaves before serving.
10 - Transfer ragu to serving bowls or plates. Garnish with fresh cilantro or Thai basil and sliced red chili if desired. Serve immediately with steamed jasmine rice or crusty bread to soak up the flavorful sauce.