01 - Heat olive oil in a large skillet over medium heat. Add the onion and cook until softened, about 2 minutes. Add garlic and cook for 30 seconds until fragrant.
02 - Add ground beef, breaking it up with a spoon. Cook until browned and no longer pink, about 5-6 minutes. Drain excess fat if necessary.
03 - Stir in chili powder, cumin, paprika, oregano, salt, black pepper, and cayenne. Cook for 1 minute, stirring constantly to coat the meat evenly.
04 - Pour in water, reduce heat to low, and simmer for 3-4 minutes until the mixture thickens slightly and flavors meld together.
05 - Preheat the oven to 350°F. Arrange hard taco shells on a baking sheet and warm for 5 minutes until crispy and heated through.
06 - Fill each shell with a generous spoonful of the beef mixture, then layer with lettuce, tomato, cheese, and cilantro. Serve immediately with sour cream and lime wedges on the side.