Bring the roast to room temp: Remove the beef from the fridge 30–45 minutes before cooking. Pat it dry with paper towels for better browning.
Preheat the oven: Set to 325°F (165°C).
Place a rack in the middle position.
Season the roast: In a small bowl, mix salt, pepper, garlic powder, onion powder, rosemary, and thyme. Rub 1 tablespoon olive oil all over the beef, then coat evenly with the seasoning blend.
Sear for flavor: Heat a large oven-safe skillet or Dutch oven over medium-high heat. Add the remaining 1 tablespoon olive oil.
Sear the roast on all sides until deeply browned, about 2–3 minutes per side.
Build the roasting base: Add onion slices, smashed garlic, and, if using, carrots and celery to the pan around the roast. Pour in the beef broth and Worcestershire sauce. The liquid should come up about 1/2 inch on the sides; add a splash more broth if needed.
Roast: Transfer the pan to the oven.
Roast until the internal temperature reaches your target doneness: 125–130°F (52–54°C): medium-rare, very pink and juicy
135–140°F (57–60°C): medium, slightly pink
145°F+ (63°C+): medium-well to well done
Rest the roast: Transfer the beef to a cutting board and tent loosely with foil. Rest 15–20 minutes so the juices redistribute.
Make the gravy (optional but recommended): Skim excess fat from the pan.
Place the pan on the stove over medium heat and bring the drippings and vegetables to a gentle bubble. Whisk 1 tablespoon flour with 2 tablespoons water (or use cornstarch for a gluten-free slurry), then whisk into the pan. Simmer until slightly thickened, 2–4 minutes, adding a splash of broth if you want it thinner.
Season to taste.
Slice and serve: For tender slices, cut the roast against the grain into thin slices. Spoon warm gravy over the top and finish with chopped parsley if you like.