You can see a facade as a short cut to get access to a certain method, without having to make the method static. The downside of static methods is that they also need to call other static methods. Most of the time you don't want that in your class. The advantage of a facade is that you can still code your class like a normal class, but you don't have to think about dependency injection inside your code and you simply get direct access to all available methods.
Contracts are more for dependency injection. You inject the contract and the container will figure out what concrete class is connected to it. This is most of the time defined in one of your ServiceProviders. This is very useful to always get the correct implementation, but often it requires a constructor and more structure in your application.
So facades are basically just short cuts, but both solutions are perfectly fine ;)