Heat a large Dutch oven over medium-high heat. Add the ground beef, breaking it apart as it cooks, until it’s well browned and crumbly, about 5 minutes. If there is excess fat, you can spoon off a little, but leave enough to carry flavour into the vegetables and spices.
Add the onions and poblano peppers to the pot. Sprinkle in the chili powder, garlic powder, smoked paprika, cumin, and cayenne. Cook for about 5 minutes, stirring often, until the onions soften slightly and the spices smell deeply aromatic.
Stir in the crushed fire-roasted tomatoes, tomato paste, hot sauce, butter, and diced green chilies until everything is well combined. Pour over about 2 cups of broth, then drop in the bay leaves and season with salt. Bring the mixture up to a gentle simmer, then reduce the heat to low.
Partially cover the pot with a lid and let the chili simmer for at least 2 hours, or leave it on very low heat for longer if you like, stirring every hour or so. The sauce will thicken and the flavours will become more concentrated as it bubbles away. If it gets too thick, you can splash in a little extra broth.
Near the end of the cooking time, stir in the cream cheese and cheddar cheese until they melt into the chili and create a rich, velvety sauce. Add the drained mixed chili beans and simmer for another 5 minutes so they heat through and soak up some flavour.
Spoon the hot chili into bowls and load up with toppings—Greek yogurt or sour cream, extra cheese, avocado slices, cilantro, and green onions add freshness and texture. Serve immediately and enjoy.