Dice the onion, finely chop garlic, cut bell pepper into small cubes, and bacon into 3/4-1 inch cubes (2-2.5 cm).
Heat the oil in a large pot over medium heat. Add the bacon and cook for a couple of minutes until it's browned and crispy. Transfer the bacon with a slotted spoon/spider strainer to a plate, leaving the oil/fat in the pot (you should have about 2-3 tablespoons of fat).
Add the onion and bell pepper, cook for about 4-5 minutes until the onion is soft.
Add the garlic and all the spices, cook for 30 seconds.
Add the tomato paste and cook for a minute.
Add kidney beans with their liquid, crushed tomatoes, and broth to the pot. Bring to a boil then simmer over low heat for 15 minutes.
Take the pot off the heat. Puree half of the soup with a blender, add it back to the pot (you can also blend the whole soup but I prefer it part creamy part chunky). Season the soup with lime juice, salt, and pepper to taste.
Assemble: ladle soup into bowls, stir in some chopped cilantro, top with reserved bacon, diced avocado, shredded cheddar, tortilla strips/crushed tortilla chips, and a dollop of sour cream.
Enjoy!