https://www.johndev.co/posts/laravel-exception-handling/