Laravel’s Contracts are a set of interfaces that define the core services provided by the framework.
Contract (or Interface) is nothing more, or less than a pointer to concrete class.
It is useful, if ever in the future you’d want to use different concrete class.
All you have to do then, is to point contract to this other class.
No fuss, simple, fast – something like this.
So, as you see, this is all about decoupling, but not decoupling understood as making your code framework independent.
More: read here.