Rinse the beans and sort them to remove any debris. Put in a bowl, cover with cold water and let soak overnight.
Put the cubes of beef in a freezer bag with 1 1/2 teaspoon of salt, massage gently, and refrigerate overnight.
The next day drain the beans, cover with several inches (centimeters) of water. Add the bay leaf and bring to a full boil for ten minutes. Lower the heat to a gentle simmer and cook until tender, one to three hours, adding more water if the water boils away. Once done, remove the bay leaf.
In a large casserole or Dutch oven (at least 6 quarts, 6l), heat the oil. Working in batches so you don’t crowd the pan, brown the pieces of beef, resisting the urge to turn them until they are nice and dark on each side. The browning adds a good deal of flavor. As the meat pieces brown, remove the pieces to a separate plate and brown the remaining pieces. If necessary, add a bit more oil to the pan as you go.
If using dried chiles, snip them into a small bowl in very tiny pieces with scissors and pour just enough boiling water over them to cover. If using fresh chiles, remove the stem and chop them finely. Set them aside. (You can either discard the seeds, which are hot, or use them.)
Once all the meat is browned, fry the onions in the pot until they are wilted, about 5 minutes. Add the garlic and fresh chiles (if using), as well as the remaining 1 1/2 teaspoon salt, chile powders, oregano, cumin, and paprika, and cook for another minute, stirring constantly to release the flavors of the spices.
Add the beans to the pot along with their liquid, as well as the dried chiles (drained of their liquid), beer, tomatoes (with their juices), brown sugar, and chocolate.
Simmer the chili at the absolute lowest temperature possible (I use a flame-tamer) for at least 1 hour, or until the meat is tender. If necessary to cook much longer, you may need to add additional water if the chili becomes too thick. When done, stir in the vinegar or lime juice. Taste, and adjust any seasonings, such as the chile powder and salt.