I've tried many enchilada recipes, and cobbled them together to create the one that works best for me. It's a little time consuming to dip the tortillas in hot oil then in the sauce before filling and rolling the enchiladas, but the taste is so good that it's worth the extra effort. this sauce is also good by itself with chips (I munch on any leftover sauce with chips while waiting for the enchiladas to bake!) You can also add 1 small can of tomato sauce to the sauce if you like tomato-y enchilada sauce. El Yucateco extra hot chile habanero sauce is my favorite sauce to add heat, and you can add 1 tablespoon of this sauce to the enchilada sauce and omit the small hot red peppers if you wish. A packet of fajita seasoning adds a lot of flavor to the beef mixture and can replace the other spices if you're in a hurry.
Puree first 4 ingredients in food processor. Add to saucepan, straining first to remove any large chunks. Stir in remaining sauce ingredients and saute for several minutes on low until mixture starts to bubble. Remove from heat.
Saute beef and diced onion in olive oil until cooked to desired doneness. Remove from heat and stir in 1 cup of the cheese.
Heat oil and, using tongs, dip corn tortillas one at a time in oil, then in sauce. Fill with 2 tablespoons of beef mixture and roll, placing side by side in greased baking dish (be careful, as tortillas will be hot). Pour remaining sauce over enchiladas and bake for 20 minutes at 350 degrees. Top with remaining cheese and bake for an additional 10 minutes or until cheese is melted. Let pan rest for 5 minutes before serving.