Heat the oil in a large Dutch oven over medium heat until it is shimmering. Add the onions, peppers, cumin, chili powder, paprika, cayenne and 1/2 teaspoon of the salt. Cook until the vegetables have softened, about 7 minutes. Stir in the garlic and cook for another 30 seconds.: The moment the vegetable oil shimmers signals it is hot enough to gently sizzle the aromatics, producing softening and slight caramelization rather than sticking. You should hear a light sizzle as you add the onions . If the oil smokes, lower the heat to prevent burning, which would introduce bitterness. A common mistake is adding vegetables to oil that is too cool, causing them to soak up oil and become greasy instead of soft and translucent.
Add the flour and stir until no raw flour remains and it emits a nutty aroma, about 1 minute. Slowly stir in the chicken stock. Add 1 can of the beans and, using a potato masher, mash the beans in the pot, creating a thicker texture.: As these hit the pot, they release a fragrant steam of smoky and earthy aromas that deepen as they cook. Stir periodically to ensure even softening and toasting of the spices, which unlocks their full flavor. If you rush this step, the spices may taste raw and sharp, so take the roughly seven minutes to let the vegetables soften to a tender, slightly caramelized state.
Stir in the remaining beans, the chicken, lime juice and remaining salt, and bring to a simmer. Reduce the heat to low and simmer for 20 minutes. Stir in the heavy cream and warm for an additional 5 minutes. Serve immediately with additional lime wedges, shredded Monterey Jack cheese, cilantro or sour cream. Leftovers can be stored in the refrigerator for up to 4 days.: You will notice the onions go translucent and the peppers become pliable, their edges browning slightly. These visual cues mean the natural sugars have released and the foundation is flavorful. Avoid overcrowding the pot, which can trap steam and prevent proper softening, leading to a mushy texture rather than the gently caramelized base you want.
Stir in the garlic and cook for another 30 seconds: The aroma of freshly cooked garlic should bloom quickly, offering a bright, savory pop. Keep the garlic moving in the pan to avoid scorching, which would turn it bitter. If your heat is high, reduce it during this brief step to preserve sweet, aromatic garlic without charring.
Add the flour and stir until no raw flour remains and it emits a nutty aroma, about 1 minute: Toasting the all purpose flour with the aromatics cooks out the raw flour taste and helps build a roux like base that thickens the broth naturally. You'll smell a toasty, nutty note when this is ready. If you see clumps form, sprinkle a tablespoon of warm stock and whisk to integrate, preventing lumps from forming in the final pot.
Slowly stir in the chicken stock: Pouring in the chicken stock gradually helps dissolve the toasted flour and creates a smooth, glossy broth. The steam will rise and the aroma will deepen into a savory, comforting bouquet. If you add the stock too fast, the heat can shock the roux and create lumps, so pour slowly and whisk as needed for a silky texture.
Add 1 can of the beans and, using a potato masher, mash the beans in the pot, creating a thicker texture: Mashing some of the cannelini beans releases starches that naturally thicken the chili while keeping other beans whole for texture contrast. You should feel resistance as you mash, and the broth will visibly thicken and take on a creamier body. Over-mashing eliminates texture, so stop when you have a mix of mashed and intact beans.
Stir in the remaining beans, the chicken, lime juice and remaining salt, and bring to a simmer: Adding the chopped cooked chicken and the rest of the beans completes the structural elements of the chili, while the lime juice brightens the pot. Bring to a gentle simmer, watching for even heat distribution so the chicken warms through without drying. Avoid a rolling boil which can toughen the meat and break down the beans too aggressively.
Reduce the heat to low and simmer for 20 minutes: During this low simmer the flavors marry and the aroma deepens into a unified whole, with the spices mellowing and the broth concentrating. You should see tiny bubbles gently breaking the surface rather than a vigorous boil. If the liquid reduces too quickly, cover partially to retain moisture and prevent the chili from drying out.
Stir in the heavy cream and warm for an additional 5 minutes: Adding the heavy cream at the end creates a velvety finish and rounds the heat, giving a luxurious mouthfeel. Warm for a few minutes until the soup is hot through, but avoid rapid simmering which can cause the cream to separate. If the pot begins to bubble aggressively after adding cream, lower the heat and stir slowly until stabilized.
Serve immediately with additional lime wedges, shredded Monterey Jack cheese, cilantro or sour cream: Fresh garnishes such as Monterey Jack cheese and cilantro add textural and flavor contrasts, while lime wedges let diners adjust acidity to taste. Scoop into warm bowls so the toppings melt slightly and present nicely. A common oversight is letting the chili cool too much before serving, which dulls the flavors and prevents cheeses from melting attractively.
Leftovers can be stored in the refrigerator for up to 4 days: Once cooled, transfer to airtight containers and chill promptly to preserve freshness. Reheat gently on the stove over low heat, stirring occasionally, to maintain texture and avoid breaking the cream. Freezing is possible, but note the cream may separate on thawing; reheat slowly and whisk to reincorporate if needed.