Index: app/Http/Controllers/Controller.php
===================================================================
--- app/Http/Controllers/Controller.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
+++ app/Http/Controllers/Controller.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
@@ -0,0 +1,13 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
+use Illuminate\Foundation\Bus\DispatchesJobs;
+use Illuminate\Foundation\Validation\ValidatesRequests;
+use Illuminate\Routing\Controller as BaseController;
+
+class Controller extends BaseController
+{
+    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
+}
Index: app/Http/Kernel.php
===================================================================
--- app/Http/Kernel.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
+++ app/Http/Kernel.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
@@ -0,0 +1,67 @@
+<?php
+
+namespace App\Http;
+
+use Illuminate\Foundation\Http\Kernel as HttpKernel;
+
+class Kernel extends HttpKernel
+{
+    /**
+     * The application's global HTTP middleware stack.
+     *
+     * These middleware are run during every request to your application.
+     *
+     * @var array
+     */
+    protected $middleware = [
+        // \App\Http\Middleware\TrustHosts::class,
+        \App\Http\Middleware\TrustProxies::class,
+        \Fruitcake\Cors\HandleCors::class,
+        \App\Http\Middleware\PreventRequestsDuringMaintenance::class,
+        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
+        \App\Http\Middleware\TrimStrings::class,
+        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
+    ];
+
+    /**
+     * The application's route middleware groups.
+     *
+     * @var array
+     */
+    protected $middlewareGroups = [
+        'web' => [
+            \App\Http\Middleware\EncryptCookies::class,
+            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
+            \Illuminate\Session\Middleware\StartSession::class,
+            // \Illuminate\Session\Middleware\AuthenticateSession::class,
+            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
+            \App\Http\Middleware\VerifyCsrfToken::class,
+            \Illuminate\Routing\Middleware\SubstituteBindings::class,
+        ],
+
+        'api' => [
+            // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
+            'throttle:api',
+            \Illuminate\Routing\Middleware\SubstituteBindings::class,
+        ],
+    ];
+
+    /**
+     * The application's route middleware.
+     *
+     * These middleware may be assigned to groups or used individually.
+     *
+     * @var array
+     */
+    protected $routeMiddleware = [
+        'auth' => \App\Http\Middleware\Authenticate::class,
+        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
+        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
+        'can' => \Illuminate\Auth\Middleware\Authorize::class,
+        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
+        'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
+        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
+        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
+        'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
+    ];
+}
Index: app/Http/Middleware/Authenticate.php
===================================================================
--- app/Http/Middleware/Authenticate.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
+++ app/Http/Middleware/Authenticate.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
@@ -0,0 +1,21 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Auth\Middleware\Authenticate as Middleware;
+
+class Authenticate extends Middleware
+{
+    /**
+     * Get the path the user should be redirected to when they are not authenticated.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return string|null
+     */
+    protected function redirectTo($request)
+    {
+        if (! $request->expectsJson()) {
+            return route('login');
+        }
+    }
+}
Index: app/Http/Middleware/EncryptCookies.php
===================================================================
--- app/Http/Middleware/EncryptCookies.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
+++ app/Http/Middleware/EncryptCookies.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
+
+class EncryptCookies extends Middleware
+{
+    /**
+     * The names of the cookies that should not be encrypted.
+     *
+     * @var array
+     */
+    protected $except = [
+        //
+    ];
+}
Index: app/Http/Middleware/PreventRequestsDuringMaintenance.php
===================================================================
--- app/Http/Middleware/PreventRequestsDuringMaintenance.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
+++ app/Http/Middleware/PreventRequestsDuringMaintenance.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware;
+
+class PreventRequestsDuringMaintenance extends Middleware
+{
+    /**
+     * The URIs that should be reachable while maintenance mode is enabled.
+     *
+     * @var array
+     */
+    protected $except = [
+        //
+    ];
+}
Index: app/Http/Middleware/RedirectIfAuthenticated.php
===================================================================
--- app/Http/Middleware/RedirectIfAuthenticated.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
+++ app/Http/Middleware/RedirectIfAuthenticated.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
@@ -0,0 +1,32 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use App\Providers\RouteServiceProvider;
+use Closure;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Auth;
+
+class RedirectIfAuthenticated
+{
+    /**
+     * Handle an incoming request.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \Closure  $next
+     * @param  string|null  ...$guards
+     * @return mixed
+     */
+    public function handle(Request $request, Closure $next, ...$guards)
+    {
+        $guards = empty($guards) ? [null] : $guards;
+
+        foreach ($guards as $guard) {
+            if (Auth::guard($guard)->check()) {
+                return redirect(RouteServiceProvider::HOME);
+            }
+        }
+
+        return $next($request);
+    }
+}
Index: app/Http/Middleware/TrimStrings.php
===================================================================
--- app/Http/Middleware/TrimStrings.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
+++ app/Http/Middleware/TrimStrings.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
+
+class TrimStrings extends Middleware
+{
+    /**
+     * The names of the attributes that should not be trimmed.
+     *
+     * @var array
+     */
+    protected $except = [
+        'current_password',
+        'password',
+        'password_confirmation',
+    ];
+}
Index: app/Http/Middleware/TrustHosts.php
===================================================================
--- app/Http/Middleware/TrustHosts.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
+++ app/Http/Middleware/TrustHosts.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
@@ -0,0 +1,20 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Http\Middleware\TrustHosts as Middleware;
+
+class TrustHosts extends Middleware
+{
+    /**
+     * Get the host patterns that should be trusted.
+     *
+     * @return array
+     */
+    public function hosts()
+    {
+        return [
+            $this->allSubdomainsOfApplicationUrl(),
+        ];
+    }
+}
Index: app/Http/Middleware/TrustProxies.php
===================================================================
--- app/Http/Middleware/TrustProxies.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
+++ app/Http/Middleware/TrustProxies.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Http\Middleware\TrustProxies as Middleware;
+use Illuminate\Http\Request;
+
+class TrustProxies extends Middleware
+{
+    /**
+     * The trusted proxies for this application.
+     *
+     * @var array|string|null
+     */
+    protected $proxies;
+
+    /**
+     * The headers that should be used to detect proxies.
+     *
+     * @var int
+     */
+    protected $headers =
+        Request::HEADER_X_FORWARDED_FOR |
+        Request::HEADER_X_FORWARDED_HOST |
+        Request::HEADER_X_FORWARDED_PORT |
+        Request::HEADER_X_FORWARDED_PROTO |
+        Request::HEADER_X_FORWARDED_AWS_ELB;
+}
Index: app/Http/Middleware/VerifyCsrfToken.php
===================================================================
--- app/Http/Middleware/VerifyCsrfToken.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
+++ app/Http/Middleware/VerifyCsrfToken.php	(revision 2fc88eca8e50b236d520d00f243f96eef97ae67f)
@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
+
+class VerifyCsrfToken extends Middleware
+{
+    /**
+     * The URIs that should be excluded from CSRF verification.
+     *
+     * @var array
+     */
+    protected $except = [
+        //
+    ];
+}
