Rinse beans and soak overnight; drain and rinse again.
Heat oil in a large pot over medium heat.
Brown sausage slices and remove; set aside.
In the same pot, sauté onion, bell pepper, and celery until soft.
Add garlic and cook for 1 minute.
Add garlic and cook for 1 minute.
Stir in beans, ham hock, bay leaves, thyme, paprika, cayenne, salt, and pepper.
Pour in water or stock and bring to a boil.
Reduce heat and simmer uncovered for 2–2½ hours, stirring occasionally.
Mash some beans against the pot to thicken the mixture.
Return sausage to the pot and simmer 15 minutes more.
Remove bay leaves and ham hock; shred meat and return to pot.