intermediateLaravel
Previous
What are local and global query scopes?
Next
What is the difference between get(), first(), value(), and pluck()?
What is the difference between find(), first(), firstOrFail(), and findOrFail()?
Answer
Clear, interview-ready explanation
find() looks up a model by its primary key and returns the model or null. first() executes the current query and returns the first matching model or null, so it can be used after arbitrary where conditions.
findOrFail() performs a primary-key lookup and throws a ModelNotFoundException when no record exists. firstOrFail() does the same for the current query. In a typical HTTP request, Laravel converts this exception to a 404 response, making the fail variants appropriate when a missing resource should not continue through application logic.