If using annatto seeds, place them in a small heatproof bowl. Heat the oil until hot and then pour it over the seeds. The oil will turn to a reddish color. Let it cool and discard the seeds.
Slice beef into large chunks, about 1½ inch thick and 2 inch wide. Place beef cubes in a large mixing bowl, then toss with the five spice powder, turmeric powder, ground coriander, paprika powder, salt, and pepper. Drizzle 1½ tablespoons of the annatto seed oil over the meat and mix well. Set aside for 15-30 minutes.
Heat a heavy-bottomed pot over medium heat and add the remaining ½ tablespoon annatto seed oil. Add bruised lemongrass stalks, shallots, garlic, star anises and bay leaves. Stir and sauté briefly until fragrant, about 30-45 seconds.
Slightly increase the heat and add beef to the pot. Continue to stir and cook until the exterior of the meat is browned. This step may take 3-4 minutes.
Add soy sauce, fish sauce and sugar. Continue to stir and cook the beef for another minute.
Add 5 cups (1.2l) water to the pot and bring it to a rapid simmer. Skim off excess foam, and then lower the heat to maintain a gentle simmer. Cover the pot and cook for about 1 hour 30 minutes to 1 hour 45 minutes.
Check if the beef is almost tender to your liking. Then add carrots and simmer for 10-15 minutes until both the meat and carrots are tender. Taste and adjust seasonings to your liking. Discard all the lemongrass, star anises, bay leaves, garlic and shallots.
Dissolve cornstarch into 2½ tablespoons water and then slowly pour it into the pot while stirring to thicken the stew. This is not a thick stew so don't overdo with the slurry.