In a large pot heat up a good bit of oil and add garlic followed by the onions, once the odor from the garlic is released. Add salt, pepper, chili, cayenne, paprika and cumin to the meat and add when the onions become translucent.
Once the meat browns add in the tomatoes and can or two of water. When the mixture gets to a boil add in some more of the salt, pepper, cayenne, chili, and paprika, and cumin to it. Don't over do it with any one seasoning as you'll be adding more later when it starts to come together. Also add in a few buillon cubes (or in lieu of the water add a few cups of stock/broth).
Set the heat to low. Let it simmer for a few hours, stirring occasionally. After about an hour you can give it a taste to check what else it needs. It's not necessary, but I find a little blue cheese somtimes help give it a little kick if it doesn't taste quite the way you want.
When you feel it's almost ready, add in the beans and a good bit of oregano and basil. Then let it simmer another 15-20 minutes or so before serving.
Put some shredded cheese on top and serve with potato, rice, pasta, or as is.