Laravel has a single line command to create user authentication system:
php artisan make:auth
Unfortunately, it has only one type of user by default (there is no admin), there is no email verification and social media login support. Laravel provides options to modify it but you need to do it yourself, there is no ready-to-use solution.
I found these articles helpful for building a useful and practical authentication system that you can use with your projects.
Please note that Authentication system in Laravel 5.2 is a little different as compare to later releases (5.3, 5.4, 5.5).
https://github.com/Hesto/multi-auth
http://www.expertphp.in/article/how-to-implement-multi-auth-in-laravel-5-4-with-example
https://medium.com/hello-laravel/multiple-authentication-system-laravel-5-4-ac94c759638a
https://github.com/bestmomo/laravel-email-confirmation
https://github.com/lubusIN/laravel-email-verification-app-boilerplate
http://lubus.in/blog/adding-email-verification-in-laravel-5-3-app-149
https://scotch.io/tutorials/laravel-social-authentication-with-socialite
https://medium.com/justlaravel/laravel-social-login-using-socialite-45305c7ddc00