Season the beef generously with salt, pepper, and thyme on all sides.
Heat the olive oil in a large skillet over medium-high heat until shimmering and slightly smoking.
Sear the beef on all sides until deeply browned, about 3-4 minutes per side. This develops rich flavor and color.
While the beef sears, chop the onion and garlic, and prepare the vegetables by peeling and cutting carrots and potatoes into chunks.
Transfer the seared beef to the slow cooker or a Dutch oven, and add sliced onions, garlic, carrots, and potatoes around it.
Pour the beef broth over all ingredients, ensuring the liquid comes about halfway up the sides of the meat.
If using a slow cooker, cover and cook on low for 8-10 hours until the beef is fork-tender and falling apart; if using a Dutch oven, cover and braise in a preheated oven at 300°F (150°C) for about 3-4 hours.
Check the dish periodically; the beef should be very tender, and vegetables soft and caramelized around the edges.
Once cooked, remove the beef and vegetables to a platter, then simmer the cooking liquid on the stove over medium heat to reduce and thicken into a rich gravy, about 10 minutes.
Pour the thickened gravy over the shredded beef and vegetables, and serve hot for a hearty, comforting meal.