Heat a large skillet or Dutch oven over medium-high heat.
Crumble the ground beef and Italian sausage into the hot pan and allow to sauté without stirring for two minutes to sear the meat for flavor. (If you’re using Italian sausage links, remove the casings and crumble the sausage into the pan.)
Break up the meat with a spoon or spatula and continue to cook until no longer pink. Drain the meat and set it aside. (I use a colander set inside another bowl and allow the meat to drain while going to the next steps.)
In the same skillet over medium heat, add the onions to the hot pan until lightly brown and softened, stirring occasionally, about 10 minutes.
Turn the heat down to medium-low. Add the garlic and stir for about one minute until fragrant, but not browning. Add the cooked bacon, ketchup, barbecue sauce, brown sugar, molasses, chili powder, mustard, Worcestershire sauce, beef stock, and liquid smoke if using. Stir the mixture together and allow to warm through.
Add the two meats back into the pan with the sauce.
Add all the beans and stir well to combine everything together.
Keeping the heat at medium-low, bring the cowboy beans up to a gentle simmer, stirring often. Taste for seasoning, adjusting as desired. You can add more beef stock if you like your beans a thinner consistency.
Lower heat and simmer gently for 15 minutes to allow the flavors to meld. Serve warm.