Heat olive oil in a large pot over medium heat. Add diced onions and cook until translucent, about 5 minutes.
Add minced garlic and cook for another minute until fragrant.
Increase heat to medium-high and add mushrooms. Cook until they release their moisture and begin to brown, about 8-10 minutes.
Stir in all the spices (chili powder, cumin, paprika, and oregano) and cook for 1 minute to bloom the flavors.
Add diced bell pepper and cook for 2-3 minutes until slightly softened.
Pour in the diced tomatoes with their juice and add the beans. Stir well to combine.
Bring to a simmer, then reduce heat to low and cook for 25-30 minutes, stirring occasionally.
Taste and adjust seasoning with salt and pepper as needed.
Serve hot with your choice of toppings.