Heat olive oil in a large Dutch oven over medium heat until shimmering. Add the chopped onion and sauté until translucent and fragrant, about 3-5 minutes, stirring occasionally.
Add the minced garlic and cook for another 30 seconds until fragrant, being careful not to burn it.
Increase the heat slightly and add the ground meat, breaking it apart with a wooden spoon. Cook until browned evenly and cooked through, about 8-10 minutes.
Add the chopped roasted tomatoes along with their juices and stir to combine, allowing the mixture to simmer for 5 minutes and develop flavor.
Stir in the soaked and chopped dried chilis, cumin, smoked paprika, cinnamon, and cocoa powder, mixing well to coat the meat and vegetables.
Pour in the broth, bring the mixture to a gentle simmer, and reduce the heat to low. Cover and let it simmer gently for about 30 minutes, stirring occasionally.
Uncover the chili and add the drained kidney beans, stirring to incorporate. Continue simmering uncovered for another 10-15 minutes until the chili thickens and flavors meld.
Taste and season with salt and pepper as needed, adjusting to your preference for spice and saltiness.
Once the chili is thickened and the flavors are fully developed, turn off the heat and let it rest for a few minutes to settle.
Serve the chili hot, garnished with fresh herbs or a dollop of sour cream if desired, alongside crispy tortilla chips or cornbread for a hearty meal.