Pick your cut: Choose pork shoulder for juicier, shreddable meat, or pork loin for a leaner sliceable roast.
Preheat if using the oven: Set the oven to 325°F (163°C).
If using a slow cooker, no preheating needed.
Mix the sauce: In a bowl, whisk balsamic vinegar, honey, olive oil, soy sauce, Dijon, garlic, Italian seasoning, onion powder, smoked paprika, salt, pepper, and red pepper flakes.
Season the pork: Pat the roast dry. Sprinkle lightly with salt and pepper on all sides.
Dump and coat: Place the pork in a Dutch oven, roasting pan, slow cooker, or Instant Pot. Pour the sauce over the top and turn the roast to coat.
Cook (oven method): Cover and roast for 2.5–3 hours for shoulder or 1.5–2 hours for loin, until the internal temperature reaches 190–203°F for shredding or 145–160°F for slicing.
Baste once or twice if you can.
Cook (slow cooker): Cover and cook on Low for 7–8 hours or on High for 4–5 hours, until tender and shreddable.
Cook (Instant Pot): Seal and cook on High Pressure for 60–70 minutes (shoulder) or 35–40 minutes (loin), then natural release for 10 minutes before venting.
Rest the meat: Transfer the pork to a cutting board and let it rest 10 minutes. Shred with two forks or slice, depending on the cut and your preference.
Reduce or thicken the sauce: Skim excess fat. For a thicker glaze, simmer the cooking liquid on the stove.
Whisk 1–2 teaspoons cornstarch with cold water, then stir into the simmering sauce until glossy.
Finish and serve: Return the pork to the sauce or spoon the sauce over the sliced meat. Garnish with fresh herbs. Serve with mashed potatoes, rice, roasted carrots, or green beans.