I apologize, I do not understand, Im a novice. You are saying the handling is wrong, is it something that I did, something I can fix, or are you saying the difference in handling is due to the difference in the laravel versions
If findOrFail doesn't find the ID you are looking for it will throw a NotFoundHttpException. So that part works great.
Now that Exception needs to be handled. If it's not handled it will show a 500 server error because that is the default for all unhandled exceptions.
If you check out the class app/Exceptions/Handler you will see that that is where all the exceptions are handled by Laravel. Maybe you have changed something in there that doesn't convert the Exception into a 404 response :)