Warm the olive oil in a large pot over medium heat.
Soften the onion, carrots, and celery with a pinch of salt, about 5 minutes.
Stir in the garlic, smoked paprika, thyme, and crushed bay leaf. Cook 30 seconds until fragrant.
Add the beans, ham hocks, broth, water, and black pepper. Bring to a boil.
Reduce to a gentle simmer. Partially cover and cook 60 minutes, stirring now and then.
Continue simmering until beans are tender and ham shreds easily, 45–60 minutes more. Add a splash of water if needed.
Transfer ham hocks to a board. Shred the meat, discarding skin and bones. Return meat to the pot.
Season with salt and the apple cider vinegar. Mash a few beans to thicken if you like.
Rest 5–10 minutes, then stir in parsley and serve hot.