Toss the beef with 2 tbsp of the fish sauce, the five spice, half the garlic, the ginger and the brown sugar. Let it sit for at least 30 minutes at room temperature, or cover and refrigerate overnight if you are planning ahead.
Heat the oil in a heavy pot or Dutch oven over medium-high. Stir in the paprika, then add the beef in a single layer and brown it hard on two sides, about 6 to 8 minutes total, working in two batches so the pieces sear instead of steam. Move the browned beef to a plate.
Lower the heat to medium. Add the shallots, lemongrass and remaining garlic and cook until soft and fragrant, about 3 minutes. Stir in the tomato paste and let it darken for a minute, this cooks off the raw edge and deepens the color.
Return the beef and any juices to the pot. Add the star anise, cinnamon, bay leaves, the last tablespoon of fish sauce and the broth. The liquid should just cover the beef, top up with water if needed.
Bring to a boil, then drop to a bare simmer, cover, and cook for 90 minutes. Stir once or twice and skim any heavy fat off the top. Chuck holds a lot of connective tissue, and it needs this slow stretch to turn silky rather than chewy.
Add the carrots and simmer uncovered for a final 30 minutes, until the beef pulls apart with a fork and the carrots are tender and the broth has reduced slightly. Fish out the lemongrass, cinnamon and star anise.
Taste and adjust with the salt or a splash more fish sauce. Serve over rice vermicelli or with a torn baguette, and finish each bowl with Thai basil, cilantro and a squeeze of lime.