A database stores rows in tables; a program works with objects. Eloquent is the layer between.
Every table gets a class, every row becomes an object of that class. Instead of writing a
query, you write Invoice::find(42).
The practical gain is in the relationships. That an invoice belongs to a customer and has several line items is declared once and available everywhere after that. It saves a great many repeated queries and makes the code readable for somebody who knows the business but not the table structure.
What to watch out for
The best-known trap is called N+1. A loop over a hundred invoices that loads the matching customer on each pass produces a hundred and one queries instead of two. With ten test records nobody notices. With ten thousand real ones the page is on the floor. The remedy is to load the relationship along with the rest.
The second point: convenience tempts people to push business logic into the model classes until they are thousands of lines long. Where the logic belongs instead is a decision to be made at the start of a project, not after two years.