01 - In a large skillet over medium heat, cook ground beef until browned, breaking it up as it cooks. Drain excess fat. Add onion and cook until softened, about 3 minutes. Stir in garlic, cumin, chili powder, smoked paprika, salt, and pepper. Cook for 1 minute. Add tomato paste and beef broth, simmering until mixture thickens and most of the liquid evaporates, about 5 minutes. Set aside.
02 - Heat oil in a saucepan over medium heat. Whisk in flour and cook for 1 minute to form a roux. Stir in chili powder, cumin, oregano, garlic powder, onion powder, and cayenne. Cook for 30 seconds. Gradually whisk in broth. Add tomato paste, salt, and sugar. Simmer, whisking often, for about 7-10 minutes until thickened. Adjust seasoning as needed.
03 - Preheat oven to 375°F. Lightly grease a 9x13-inch baking dish.
04 - Wrap tortillas in a damp towel and microwave for 40 seconds, or lightly warm each in a skillet to prevent cracking.
05 - Pour 1/2 cup of enchilada sauce into the baking dish, spreading to coat the bottom. Fill each tortilla with 2-3 tablespoons of beef mixture and a sprinkle of cheeses. Roll up and place seam-side down in the baking dish. Pour remaining sauce evenly over enchiladas. Top with remaining cheeses.
06 - Bake for 20-25 minutes, until cheese is bubbly and golden. Let cool for 5 minutes before serving. Garnish with chopped cilantro and diced red onion if desired. Serve hot.