Add all of the spice rub ingredients to a small bowl and stir until evenly mixed.
Pat the pork roast dry using paper towels. Rub the olive oil over the entire surface, then coat generously with the spice mixture, pressing it into the meat.
Place the seasoned pork into the slow cooker. Scatter the chopped onion and minced garlic around the roast.
Cover and cook on low for 8 to 10 hours, until the pork is very tender and easily pulls apart with a fork. The internal temperature should reach at least 145°F.
Transfer the pork to a cutting board and shred using two forks. Stir the shredded meat back into some of the cooking juices to keep it moist. Serve warm with BBQ sauce if desired.
Notes
Cut of pork: Pork shoulder butt works best for slow cooking, but picnic roast or pork loin can also be used. Bone-in or boneless both work, just remove the bone before shredding.
Fat layer: A thicker fat cap adds flavor during cooking. You can trim excess fat before cooking or skim it off after shredding.
Extra smoky flavor: A small amount of liquid smoke can be added to the slow cooker if desired.
Optional searing: Browning the pork in a skillet before slow cooking adds deeper flavor, but it is not required.
Serving ideas: This pulled pork works well in sandwiches, tacos, burritos, over mashed potatoes, or alongside classic BBQ sides.
Sauce choice: The pork is seasoned with a dry rub. BBQ sauce can be mixed in after shredding or served on the side so everyone can add their own.