Prep the veggies: Slice the cabbage thinly, dice the onion and bell pepper, and mince the garlic.
Rinse and drain the beans.
Brown the meat: Heat a large skillet over medium-high. Add olive oil if using, then the ground meat. Cook, breaking it up with a spatula, until browned and cooked through, 5–7 minutes.
Season lightly with salt and pepper.
Sauté the aromatics: Add onion and bell pepper to the skillet. Cook 3–4 minutes until softened, then stir in the garlic for 30 seconds until fragrant.
Add the cabbage: Pile the sliced cabbage into the skillet. It will look like a lot, but it cooks down.
Sprinkle with taco seasoning and a pinch of salt. Toss well to coat everything in spices.
Steam and soften: Pour in 1/4 cup broth or water. Cover the skillet (or tent with foil) and cook 5 minutes.
Uncover and stir. Continue cooking 3–5 minutes, adding another splash of broth if needed, until the cabbage is tender with a little bite.
Stir in beans and tomatoes: Add the beans and diced tomatoes with chiles. Stir to combine and simmer 2–3 minutes so the flavors mingle and any excess liquid reduces.
Finish with lime: Squeeze the lime juice over the skillet.
Taste and adjust salt, pepper, and spice level. If you like it saucier, add a bit more broth; for thicker, let it cook a minute longer.
Garnish and serve: Top with chopped cilantro and your favorite toppings. Serve hot straight from the skillet.