Prep the beef: Trim excess hard fat from the chuck roast, then cut into 3–4 large chunks.
Pat dry and season all over with salt and pepper.
Build the base: Add sliced onion and minced garlic to the slow cooker. Stir in the tomatoes (or tomato sauce), beef broth, lime juice, chopped chipotles and adobo, and all the spices. Nestle the beef pieces into the mixture.
Add the bay leaf if using.
Cook low and slow: Cover and cook on Low for 8–9 hours or High for 4–5 hours, until the beef is fork-tender and shreds easily.
Shred the beef: Transfer the beef to a large bowl. Discard the bay leaf. Use two forks to shred the meat into bite-sized strands.
Reduce and enrich: Skim excess fat from the cooking liquid.
If it’s very thin, ladle 1–2 cups into a saucepan and simmer for 5–10 minutes to reduce slightly. Return the shredded beef to the slow cooker and stir in enough liquid to make it juicy but not soupy. Taste and adjust salt, lime, or adobo.
Warm the tortillas: Heat corn tortillas on a dry skillet until soft and lightly charred, or wrap in foil and warm in a low oven.
Keep them covered so they stay pliable.
Assemble: Spoon the beef into tortillas and top with onion, cilantro, and a squeeze of lime. Add your favorite extras like salsa, cotija, or avocado.