Brown the beef in batches in a large Dutch oven with olive oil. Set the beef aside.
Sauté the onions, carrots, and celery in the same pot for about 5 minutes. Add the garlic and cook for another minute.
Stir in the tomatoes, beef broth, tomato paste, bay leaves, thyme, salt, and pepper. Return the beef to the pot and bring to a simmer.
Cover and reduce heat to low. Let the ragu cook for 2-3 hours, stirring occasionally.
Once the beef is tender, shred it with two forks and stir it back into the sauce. Taste and adjust the seasoning.
Notes
Beef ragu tastes even better the next day, so feel free to make it ahead and store leftovers for up to 3 days. You can also freeze it for up to 3 months.