Season beef with salt and pepper. Heat olive oil in a skillet over medium-high heat and brown the beef on all sides for 3–4 minutes each, if desired.
Place sliced onion and minced garlic in the bottom of the slow cooker.
Add chipotle peppers or powder, cumin, oregano, and smoked paprika over the onions and garlic.
Nestle the seared or raw beef on top of the seasoned onion mixture.
Pour beef broth, lime juice, and vinegar over the meat. Add salt and pepper to taste. Optionally, add a bay leaf.
Cover and cook on low for 8–10 hours or on high for 5–6 hours, until beef is tender and shreds easily.
Remove beef and shred with two forks. Return shredded beef to the juices in the slow cooker and stir well to coat.
Serve warm in tacos, burritos, bowls, or over rice with your choice of toppings like cilantro, lime wedges, or diced onions.