laravel-medialibrary is probably one of our most powerful packages. It can associate files with Eloquent models. It can also generate derived images such as thumbnails. It has a very developer-friendly API to work with. Here's a quick example:

$yourModel->getMedia( 'images' )->first()->getUrl( 'thumb' );

Want to store some large files on another filesystem? No problem:

$yourModel->addMedia($bigFile)->toMediaCollection( 'downloads' , 's3' );

Because the package can do so much, the docs have grown quite large. If you're a visual learner, you'll be happy to know that I've made a video that shows what the medialibrary is capable of.