Step 1: Make the Beef Filling : Heat olive oil in a large skillet over medium heat. Add onion and sauté for 2–3 minutes until translucent. Stir in garlic and cook for another 30 seconds. Add the ground beef and cook until browned, breaking it apart as it cooks (about 6–7 minutes). Drain excess fat. Stir in chili powder, cumin, paprika, oregano, salt, and pepper. Add tomato sauce and mix well. Simmer for 3–4 minutes to let flavors meld. Stir in 1 cup shredded cheese, mix, and set aside.
Step 2: Prepare the Sour Cream Sauce : In a medium saucepan, melt butter over medium heat. Add flour and whisk for 1 minute to create a roux. Gradually pour in chicken broth while whisking continuously to avoid lumps. Cook for 4–5 minutes until the sauce thickens slightly. Remove from heat and whisk in sour cream and shredded mozzarella (or Pepper Jack) until smooth. Add salt, pepper, and green chilies (if using). Set aside — do not boil after adding sour cream or it may curdle.
Step 3: Assemble the Enchiladas : Preheat oven to 375°F (190°C). Lightly grease a 9x13-inch baking dish. Spoon a thin layer of the sour cream sauce onto the bottom of the dish. Place about 2–3 tablespoons of the beef filling in each tortilla, roll it up, and arrange seam-side down in the dish. Pour the remaining sour cream sauce evenly over the top. Sprinkle with shredded cheese.
Step 4: Bake : Cover with foil and bake for 20 minutes. Remove foil and bake uncovered for another 10 minutes, until the top is golden and bubbly. Let rest for 5–10 minutes before serving.