Preheat the oven to 350 degrees. Lightly grease a 9x13-inch pan and set aside.
In a large 12-inch skillet, add olive oil over medium high heat and add onion. Cook until lightly browned, about 5 minutes. Add pepper and cook for 2 minutes. Add ground beef or turkey and cook until lightly browned. Drain the grease. Add the minced garlic and cook for 1 minute. Add tomato paste, chili powder, cumin, cayenne, oregano, salt and pepper and cook for 1 minute. Add water and cook for 15 minutes over medium heat stirring occasionally until the water has evaporated. Taste for seasoning. Set aside.
In a small bowl add cream cheese, sour cream, salt and pepper and mix well. Set aside.
In the bottom of the baking pan, add half the can of enchilada sauce and cover the bottom.
In a shallow bowl, add chicken broth. Lightly dip the tortilla on both sides in the chicken broth (don’t over saturate) and cover the bottom of the baking dish with a layer of tortillas. Break up a tortilla to make sure the entire layer is covered with some tortilla. Add 1/2 of the meat mixture and spread evenly over tortillas. Add 1/2 of the cream cheese mixture over meat, sprinkle 1 cup of cheese over cream cheese, add half of the salsa over the cheese mixture, sprinkle half of the beans over and add another layer of tortillas and continue with the layering ending with a layer of tortillas. Pour remaining enchilada sauce over top and sprinkle with remaining cheese.
Place casserole on baking sheet (to prevent spills) and bake in oven for 30-40 minutes or until the top is golden brown and bubbling. Remove and allow to sit for 5-10 minutes before cutting and serving.
Garnish each piece with sour cream, cilantro, salsa or avocado if desired.