Brown vegan beef. In a heavy pot or Dutch oven, heat olive oil over medium heat. When oil shimmers, add in vegan beef. Using a wooden spoon, break it up and stir, cooking until it's cooked through and browned, about 5-8 minutes.
Sauté aromatics: Add diced onion, diced bell pepper, diced jalapeño, and minced garlic. Sauté another 5-8 minutes, until onions start to brown.
Cook tomato paste: Add in the tomato paste. Break it up with your spoon and stir to coat the aromatics. Keep cooking for 1-2 minutes, stirring constantly, until the tomato paste changes from a bright red to a deeper rusty color.
Bloom spices: Add in chili powder, ground cumin, smoked paprika, black pepper, and oregano. Stir continuously for about 1 minute to prevent them from burning.
Add remaining ingredients: Add in the vegetable broth, the beans (pinto and kidney), crushed tomatoes, bay leaves, cocoa powder, brown sugar, and soy sauce. Lastly, if you are making a spicy chili, add in the chopped chipotle peppers and 1-2 tablespoons of the adobo sauce from the can. You can add more of these if you like it extra spicy.
Simmer: Bring the chili up to a boil, then reduce heat to establish a simmer. Simmer for at least 30 minutes, but preferably for a full 1 hour (or even longer) for the best flavor development. Stir occasionally to keep the chili from sticking to the pot.
Adjust: Taste and adjust salt to preference. If you want to thicken the chili slightly, you can blitz it a few times with an immersion blender.
Serve: Serve the chili with any of your favorite garnishes. Fresh cilantro, lime and red/green onion add a lovely freshness/brightness. Vegan sour cream will cool/balance the spice. I love to serve this chili with homemade cornbread or warm flour tortillas.