Illuminate\Contracts\Container\BindingResolutionException Target class [App\Http\Middleware\AuthGates] does not exist. code example
Example: class [App\Http\Middleware\EnsureEmailIsVerified] does not exist when there is a file
Well first of all look at the namespaces:
namespace Illuminate\Auth\Middleware;
you should rename it to:
namespace App\Http\Middleware;