Abdelrahman Omran wrote a nice tutorial on how to use repositories in Laravel 5.3.

repository laravel

Save 70% of time, code, and hassle writing boilerplate CRUD, and developing complex caching logic. Cache any result set regardless of data source.