While your pan heats, combine all the dry spices in a small bowl: chili powder, cumin, dried oregano, garlic powder, smoked paprika, chipotle powder, salt, and black pepper. Stir to combine evenly so the spices distribute uniformly when added to the meat. Meanwhile, prep your toppings by thinly slicing the red onions, chopping the tomatoes, shredding the lettuce, and setting them all in separate small bowls. Having everything ready before you start cooking ensures smooth assembly and prevents the meat from overcooking while you're prepping.
Heat the olive oil in a large skillet over medium-high heat until shimmering. Add the ground beef and cook for 5-7 minutes, breaking it apart with a wooden spoon as it cooks. Stir occasionally to ensure even browning and break the meat into small, uniform pieces. The beef should be cooked through with no pink remaining and nicely browned for deeper flavor.
Add the spice blend from Step 1 to the browned beef and stir constantly for about 30 seconds to bloom the spices and release their aromatics. This quick toasting deepens the flavor significantly. Pour in the tomato paste and stir until it coats the meat evenly, then add the water and bring to a gentle simmer. I find that letting the sauce simmer for the full 3-5 minutes allows the flavors to meld together beautifully rather than tasting like separate spices.
Continue simmering until the sauce thickens noticeably and reduces by about half, which should take 3-5 minutes total. The consistency should coat the beef lightly but still be slightly saucy—not dry. Warm the tortillas in a dry skillet or over a gas flame for just 10-15 seconds per side to make them pliable. Serve the beef filling on the warm tortillas and let everyone build their own tacos with the prepped toppings from Step 1.