Build the flavor base. Warm the avocado oil in a large pot or Dutch oven over medium-high heat. Add the diced onion and sauté for 3–5 minutes until the edges start to brown. Add the bell pepper, carrots, and celery and sauté for another 3–5 minutes, stirring occasionally, until everything starts to soften.
Bloom the spices. Add the minced garlic, ancho chili powder, cumin, oregano, cayenne (if using), and salt. Mix everything together thoroughly and sauté for 2–3 minutes until the spices are fragrant and just beginning to stick to the bottom of the pot. That slight sticking is flavor developing it's exactly what you want.
Add everything else and simmer. Add the drained beans, crushed tomatoes, diced tomatoes, vegetable broth, and water. Stir well, scraping any browned bits off the bottom of the pot as you go those bits add flavor to the whole chili. Cover and bring to a boil over high heat. Once boiling, uncover and reduce to a medium simmer. Cook for 20–25 minutes, stirring occasionally. If the chili starts to splatter, reduce the heat slightly or cover with a splatter screen.
Taste and serve. Sample the chili and adjust salt as needed. Serve warm in deep bowls with your choice of toppings.