Preheat the oven to 300 degrees Fahrenheit and prepare the ingredients.
Pat the pork shoulder dry with paper towels. This helps the seasoning stick to the pork, creating a crisper, more golden-brown crust.
In a small bowl, mix the salt (1 teaspoon), black pepper (1 teaspoon), garlic powder, onion powder, and smoked paprika.
Rub the seasoning blend evenly over the entire surface of the pork.
Heat 2 tablespoons of olive oil in a large Dutch oven over high heat. Once the oil is shimmering (that's how you know it's hot), add the pork shoulder and sear for 3-4 minutes per side until a deep golden-brown crust forms. Remove the pork from the Dutch oven and set it aside.
Reduce the heat to medium. Add the sliced onion and cook for 3-5 minutes, stirring occasionally until softened. Then, stir in the minced garlic and cook for 30 seconds until fragrant.
Pour in 2 cups of beef broth, scraping the bottom of the pot with a wooden spoon to lift any flavorful browned bits stuck to the bottom (this enhances the gravy). Add the carrots, potatoes, celery, and remaining salt (1 teaspoon) and black pepper (½ teaspoon).
Return the seared pork shoulder to the Dutch oven, nestling it into the broth and veggies. Gently push the fresh rosemary and thyme sprigs into the broth.
Cover with an offset lid and transfer to the oven. Slowly cook for 3 hours until it registers at least 190°F or up to 205°F and the pork is fork-tender and easily pulls apart with two forks. Halfway through cooking, spoon some juices over the pork to keep it moist. See notes for making gravy.
Remove the rosemary and thyme sprigs before serving. Slice or shred the pork and serve it with the tender vegetables and broth as a natural gravy.