In a large bowl cover beans with water, and leave to soak 7-8 hours (or overnight). The following day strain the beans and discard the water. Then wash and strain the beans again and set aside.
In a deep pot, heat oil over high and add onion and garlic. Lower to medium and simmer until onion crystalizes. Add carrots and meat. Simmer an additional 5-10 minutes.
Add seasonings and beans in, and cover with 5 cups of water. Mix ingredients well, cover with a lid, and raise the temperature to high until it boils (about 20 minutes). Add the bay leaf in.
Lower them temperature (low to medium), and continue cooking until the beans are tender, but not falling apart. (The length of time varies depending on the type of bean, age of bean, stove, whether you're using a pressure cooker or a regular pot. For these it took an additional 40 minutes.) Keep adding a little water at a time throughout the process to keep the level even (about 3-4 cups total).
A few minutes before you turn off the heat make the roux by warming up the oil in a small pot over high. Once the oil is heated, add flour and stir vigorously so the mixture doesn't clump. Add paprika and continue stirring for a minute or two more. Combine roux with the soup and stir everything well. Cook an additional 5 minutes.
Take the bay leaf out and discard, and garnish soup with parsley.