Heat olive oil in a large Dutch oven over medium heat.
Add onion, bell pepper, carrots, celery, and ¼ teaspoon salt.
Cook 7–10 minutes, stirring occasionally, until vegetables are tender and onion is translucent.
Add garlic, chili powder, cumin, smoked paprika, and oregano.
Cook 1 minute, stirring constantly, until fragrant.
Add diced tomatoes with juices, black beans, pinto beans, vegetable broth, and bay leaf.
Stir well and bring to a simmer.
Reduce heat to maintain a gentle simmer.
Cook uncovered for 30 minutes, stirring occasionally.
Remove from heat and discard the bay leaf.
Transfer 1½ cups of chili to a blender and blend until smooth, then return to the pot.
Alternatively, use an immersion blender briefly or mash with a potato masher for thicker texture.
Stir in chopped cilantro.
Add vinegar or lime juice to taste.
Adjust salt as needed.
Serve in bowls with desired garnishes.