Rinse and sort the beans, removing any small stones or off-looking beans.
In a slow cooker, layer the onions, carrots, celery, garlic, thyme, beans and ham hocks.
Pour in chicken stock. Remove any beans that float to the top and discard.
Add bay leaves to the slow cooker.
Cover and cook on high 6 to 8 hours. (Mine was done at the 6 hour mark.)
When the beans are cooked and tender, remove and discard the bay leaves.
Carefully remove the ham hocks from the slow cooker and transfer to a cutting board. Remove the meat from the bone and cut into bite-sized pieces, discarding any fatty or gristly bits.
Optional: if you'd like a thicker soup, give the soup a few pulses with an immersion blender, or smash some of the beans with the back of a wooden spoon until you have the desired consistency.
Return the ham meat to the slow cooker and stir to combine.
Adjust seasoning to your liking with salt and black pepper.
Garnish with fresh thyme sprigs. Pairs beautifully with piping hot cornbread!