diff --git a/_ide_helper.php b/_ide_helper.php
index c55765ef1a91da437b5c9f833858c8e278de1cc6..9314873440dfac62ca1beb7361aced658908452e 100644
--- a/_ide_helper.php
+++ b/_ide_helper.php
@@ -2,8 +2,8 @@
 // @formatter:off
 
 /**
- * A helper file for Laravel 5, to provide autocomplete information to your IDE
- * Generated for Laravel 5.6.28 on 2019-01-24 10:15:25.
+ * A helper file for Laravel, to provide autocomplete information to your IDE
+ * Generated for Laravel 6.20.16.
  *
  * This file should not be included in your code, only analyzed by your IDE!
  *
@@ -11,16 +11,14 @@
  * @see https://github.com/barryvdh/laravel-ide-helper
  */
 
-namespace Illuminate\Support\Facades { 
-
-    /**
+    namespace Illuminate\Support\Facades { 
+            /**
      * 
      *
-     * @see \Illuminate\Foundation\Application
+     * @see \Illuminate\Contracts\Foundation\Application
      */ 
-    class App {
-        
-        /**
+        class App {
+                    /**
          * Get the version number of the application.
          *
          * @return string 
@@ -28,22 +26,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function version()
         {
-            return \Illuminate\Foundation\Application::version();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->version();
         }
-        
-        /**
+                    /**
          * Run the given array of bootstrap classes.
          *
-         * @param array $bootstrappers
+         * @param string[] $bootstrappers
          * @return void 
          * @static 
          */ 
         public static function bootstrapWith($bootstrappers)
         {
-            \Illuminate\Foundation\Application::bootstrapWith($bootstrappers);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->bootstrapWith($bootstrappers);
         }
-        
-        /**
+                    /**
          * Register a callback to run after loading the environment.
          *
          * @param \Closure $callback
@@ -52,10 +50,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function afterLoadingEnvironment($callback)
         {
-            \Illuminate\Foundation\Application::afterLoadingEnvironment($callback);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->afterLoadingEnvironment($callback);
         }
-        
-        /**
+                    /**
          * Register a callback to run before a bootstrapper.
          *
          * @param string $bootstrapper
@@ -65,10 +63,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function beforeBootstrapping($bootstrapper, $callback)
         {
-            \Illuminate\Foundation\Application::beforeBootstrapping($bootstrapper, $callback);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->beforeBootstrapping($bootstrapper, $callback);
         }
-        
-        /**
+                    /**
          * Register a callback to run after a bootstrapper.
          *
          * @param string $bootstrapper
@@ -78,10 +76,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function afterBootstrapping($bootstrapper, $callback)
         {
-            \Illuminate\Foundation\Application::afterBootstrapping($bootstrapper, $callback);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->afterBootstrapping($bootstrapper, $callback);
         }
-        
-        /**
+                    /**
          * Determine if the application has been bootstrapped before.
          *
          * @return bool 
@@ -89,34 +87,46 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasBeenBootstrapped()
         {
-            return \Illuminate\Foundation\Application::hasBeenBootstrapped();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->hasBeenBootstrapped();
         }
-        
-        /**
+                    /**
          * Set the base path for the application.
          *
          * @param string $basePath
-         * @return $this 
+         * @return \Illuminate\Foundation\Application 
          * @static 
          */ 
         public static function setBasePath($basePath)
         {
-            return \Illuminate\Foundation\Application::setBasePath($basePath);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->setBasePath($basePath);
         }
-        
-        /**
+                    /**
          * Get the path to the application "app" directory.
          *
-         * @param string $path Optionally, a path to append to the app path
+         * @param string $path
          * @return string 
          * @static 
          */ 
         public static function path($path = '')
         {
-            return \Illuminate\Foundation\Application::path($path);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->path($path);
+        }
+                    /**
+         * Set the application directory.
+         *
+         * @param string $path
+         * @return \Illuminate\Foundation\Application 
+         * @static 
+         */ 
+        public static function useAppPath($path)
+        {
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->useAppPath($path);
         }
-        
-        /**
+                    /**
          * Get the base path of the Laravel installation.
          *
          * @param string $path Optionally, a path to append to the base path
@@ -125,10 +135,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function basePath($path = '')
         {
-            return \Illuminate\Foundation\Application::basePath($path);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->basePath($path);
         }
-        
-        /**
+                    /**
          * Get the path to the bootstrap directory.
          *
          * @param string $path Optionally, a path to append to the bootstrap path
@@ -137,10 +147,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function bootstrapPath($path = '')
         {
-            return \Illuminate\Foundation\Application::bootstrapPath($path);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->bootstrapPath($path);
         }
-        
-        /**
+                    /**
          * Get the path to the application configuration files.
          *
          * @param string $path Optionally, a path to append to the config path
@@ -149,10 +159,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function configPath($path = '')
         {
-            return \Illuminate\Foundation\Application::configPath($path);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->configPath($path);
         }
-        
-        /**
+                    /**
          * Get the path to the database directory.
          *
          * @param string $path Optionally, a path to append to the database path
@@ -161,22 +171,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function databasePath($path = '')
         {
-            return \Illuminate\Foundation\Application::databasePath($path);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->databasePath($path);
         }
-        
-        /**
+                    /**
          * Set the database directory.
          *
          * @param string $path
-         * @return $this 
+         * @return \Illuminate\Foundation\Application 
          * @static 
          */ 
         public static function useDatabasePath($path)
         {
-            return \Illuminate\Foundation\Application::useDatabasePath($path);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->useDatabasePath($path);
         }
-        
-        /**
+                    /**
          * Get the path to the language files.
          *
          * @return string 
@@ -184,10 +194,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function langPath()
         {
-            return \Illuminate\Foundation\Application::langPath();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->langPath();
         }
-        
-        /**
+                    /**
          * Get the path to the public / web directory.
          *
          * @return string 
@@ -195,10 +205,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function publicPath()
         {
-            return \Illuminate\Foundation\Application::publicPath();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->publicPath();
         }
-        
-        /**
+                    /**
          * Get the path to the storage directory.
          *
          * @return string 
@@ -206,22 +216,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function storagePath()
         {
-            return \Illuminate\Foundation\Application::storagePath();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->storagePath();
         }
-        
-        /**
+                    /**
          * Set the storage directory.
          *
          * @param string $path
-         * @return $this 
+         * @return \Illuminate\Foundation\Application 
          * @static 
          */ 
         public static function useStoragePath($path)
         {
-            return \Illuminate\Foundation\Application::useStoragePath($path);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->useStoragePath($path);
         }
-        
-        /**
+                    /**
          * Get the path to the resources directory.
          *
          * @param string $path
@@ -230,10 +240,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function resourcePath($path = '')
         {
-            return \Illuminate\Foundation\Application::resourcePath($path);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->resourcePath($path);
         }
-        
-        /**
+                    /**
          * Get the path to the environment file directory.
          *
          * @return string 
@@ -241,34 +251,34 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function environmentPath()
         {
-            return \Illuminate\Foundation\Application::environmentPath();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->environmentPath();
         }
-        
-        /**
+                    /**
          * Set the directory for the environment file.
          *
          * @param string $path
-         * @return $this 
+         * @return \Illuminate\Foundation\Application 
          * @static 
          */ 
         public static function useEnvironmentPath($path)
         {
-            return \Illuminate\Foundation\Application::useEnvironmentPath($path);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->useEnvironmentPath($path);
         }
-        
-        /**
+                    /**
          * Set the environment file to be loaded during bootstrapping.
          *
          * @param string $file
-         * @return $this 
+         * @return \Illuminate\Foundation\Application 
          * @static 
          */ 
         public static function loadEnvironmentFrom($file)
         {
-            return \Illuminate\Foundation\Application::loadEnvironmentFrom($file);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->loadEnvironmentFrom($file);
         }
-        
-        /**
+                    /**
          * Get the environment file the application is using.
          *
          * @return string 
@@ -276,10 +286,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function environmentFile()
         {
-            return \Illuminate\Foundation\Application::environmentFile();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->environmentFile();
         }
-        
-        /**
+                    /**
          * Get the fully qualified path to the environment file.
          *
          * @return string 
@@ -287,21 +297,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function environmentFilePath()
         {
-            return \Illuminate\Foundation\Application::environmentFilePath();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->environmentFilePath();
         }
-        
-        /**
+                    /**
          * Get or check the current application environment.
          *
+         * @param string|array $environments
          * @return string|bool 
          * @static 
          */ 
-        public static function environment()
+        public static function environment(...$environments)
         {
-            return \Illuminate\Foundation\Application::environment();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->environment(...$environments);
         }
-        
-        /**
+                    /**
          * Determine if application is in local environment.
          *
          * @return bool 
@@ -309,10 +320,21 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function isLocal()
         {
-            return \Illuminate\Foundation\Application::isLocal();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->isLocal();
+        }
+                    /**
+         * Determine if application is in production environment.
+         *
+         * @return bool 
+         * @static 
+         */ 
+        public static function isProduction()
+        {
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->isProduction();
         }
-        
-        /**
+                    /**
          * Detect the application's current environment.
          *
          * @param \Closure $callback
@@ -321,10 +343,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function detectEnvironment($callback)
         {
-            return \Illuminate\Foundation\Application::detectEnvironment($callback);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->detectEnvironment($callback);
         }
-        
-        /**
+                    /**
          * Determine if the application is running in the console.
          *
          * @return bool 
@@ -332,10 +354,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function runningInConsole()
         {
-            return \Illuminate\Foundation\Application::runningInConsole();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->runningInConsole();
         }
-        
-        /**
+                    /**
          * Determine if the application is running unit tests.
          *
          * @return bool 
@@ -343,10 +365,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function runningUnitTests()
         {
-            return \Illuminate\Foundation\Application::runningUnitTests();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->runningUnitTests();
         }
-        
-        /**
+                    /**
          * Register all of the configured providers.
          *
          * @return void 
@@ -354,24 +376,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function registerConfiguredProviders()
         {
-            \Illuminate\Foundation\Application::registerConfiguredProviders();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->registerConfiguredProviders();
         }
-        
-        /**
+                    /**
          * Register a service provider with the application.
          *
          * @param \Illuminate\Support\ServiceProvider|string $provider
-         * @param array $options
          * @param bool $force
          * @return \Illuminate\Support\ServiceProvider 
          * @static 
          */ 
-        public static function register($provider, $options = array(), $force = false)
+        public static function register($provider, $force = false)
         {
-            return \Illuminate\Foundation\Application::register($provider, $options, $force);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->register($provider, $force);
         }
-        
-        /**
+                    /**
          * Get the registered service provider instance if it exists.
          *
          * @param \Illuminate\Support\ServiceProvider|string $provider
@@ -380,10 +401,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getProvider($provider)
         {
-            return \Illuminate\Foundation\Application::getProvider($provider);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->getProvider($provider);
         }
-        
-        /**
+                    /**
          * Get the registered service provider instances if any exist.
          *
          * @param \Illuminate\Support\ServiceProvider|string $provider
@@ -392,10 +413,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getProviders($provider)
         {
-            return \Illuminate\Foundation\Application::getProviders($provider);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->getProviders($provider);
         }
-        
-        /**
+                    /**
          * Resolve a service provider instance from the class name.
          *
          * @param string $provider
@@ -404,10 +425,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function resolveProvider($provider)
         {
-            return \Illuminate\Foundation\Application::resolveProvider($provider);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->resolveProvider($provider);
         }
-        
-        /**
+                    /**
          * Load and boot all of the remaining deferred providers.
          *
          * @return void 
@@ -415,10 +436,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function loadDeferredProviders()
         {
-            \Illuminate\Foundation\Application::loadDeferredProviders();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->loadDeferredProviders();
         }
-        
-        /**
+                    /**
          * Load the provider for a deferred service.
          *
          * @param string $service
@@ -427,10 +448,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function loadDeferredProvider($service)
         {
-            \Illuminate\Foundation\Application::loadDeferredProvider($service);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->loadDeferredProvider($service);
         }
-        
-        /**
+                    /**
          * Register a deferred provider and service.
          *
          * @param string $provider
@@ -440,28 +461,24 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function registerDeferredProvider($provider, $service = null)
         {
-            \Illuminate\Foundation\Application::registerDeferredProvider($provider, $service);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->registerDeferredProvider($provider, $service);
         }
-        
-        /**
+                    /**
          * Resolve the given type from the container.
-         * 
-         * (Overriding Container::make)
          *
          * @param string $abstract
          * @param array $parameters
          * @return mixed 
          * @static 
          */ 
-        public static function make($abstract, $parameters = array())
+        public static function make($abstract, $parameters = [])
         {
-            return \Illuminate\Foundation\Application::make($abstract, $parameters);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->make($abstract, $parameters);
         }
-        
-        /**
+                    /**
          * Determine if the given abstract type has been bound.
-         * 
-         * (Overriding Container::bound)
          *
          * @param string $abstract
          * @return bool 
@@ -469,10 +486,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function bound($abstract)
         {
-            return \Illuminate\Foundation\Application::bound($abstract);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->bound($abstract);
         }
-        
-        /**
+                    /**
          * Determine if the application has booted.
          *
          * @return bool 
@@ -480,10 +497,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function isBooted()
         {
-            return \Illuminate\Foundation\Application::isBooted();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->isBooted();
         }
-        
-        /**
+                    /**
          * Boot the application's service providers.
          *
          * @return void 
@@ -491,44 +508,44 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function boot()
         {
-            \Illuminate\Foundation\Application::boot();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->boot();
         }
-        
-        /**
+                    /**
          * Register a new boot listener.
          *
-         * @param mixed $callback
+         * @param callable $callback
          * @return void 
          * @static 
          */ 
         public static function booting($callback)
         {
-            \Illuminate\Foundation\Application::booting($callback);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->booting($callback);
         }
-        
-        /**
+                    /**
          * Register a new "booted" listener.
          *
-         * @param mixed $callback
+         * @param callable $callback
          * @return void 
          * @static 
          */ 
         public static function booted($callback)
         {
-            \Illuminate\Foundation\Application::booted($callback);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->booted($callback);
         }
-        
-        /**
+                    /**
          * {@inheritdoc}
          *
          * @static 
          */ 
         public static function handle($request, $type = 1, $catch = true)
         {
-            return \Illuminate\Foundation\Application::handle($request, $type, $catch);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->handle($request, $type, $catch);
         }
-        
-        /**
+                    /**
          * Determine if middleware has been disabled for the application.
          *
          * @return bool 
@@ -536,10 +553,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function shouldSkipMiddleware()
         {
-            return \Illuminate\Foundation\Application::shouldSkipMiddleware();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->shouldSkipMiddleware();
         }
-        
-        /**
+                    /**
          * Get the path to the cached services.php file.
          *
          * @return string 
@@ -547,10 +564,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getCachedServicesPath()
         {
-            return \Illuminate\Foundation\Application::getCachedServicesPath();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->getCachedServicesPath();
         }
-        
-        /**
+                    /**
          * Get the path to the cached packages.php file.
          *
          * @return string 
@@ -558,10 +575,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getCachedPackagesPath()
         {
-            return \Illuminate\Foundation\Application::getCachedPackagesPath();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->getCachedPackagesPath();
         }
-        
-        /**
+                    /**
          * Determine if the application configuration is cached.
          *
          * @return bool 
@@ -569,10 +586,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function configurationIsCached()
         {
-            return \Illuminate\Foundation\Application::configurationIsCached();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->configurationIsCached();
         }
-        
-        /**
+                    /**
          * Get the path to the configuration cache file.
          *
          * @return string 
@@ -580,10 +597,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getCachedConfigPath()
         {
-            return \Illuminate\Foundation\Application::getCachedConfigPath();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->getCachedConfigPath();
         }
-        
-        /**
+                    /**
          * Determine if the application routes are cached.
          *
          * @return bool 
@@ -591,10 +608,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function routesAreCached()
         {
-            return \Illuminate\Foundation\Application::routesAreCached();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->routesAreCached();
         }
-        
-        /**
+                    /**
          * Get the path to the routes cache file.
          *
          * @return string 
@@ -602,10 +619,32 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getCachedRoutesPath()
         {
-            return \Illuminate\Foundation\Application::getCachedRoutesPath();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->getCachedRoutesPath();
+        }
+                    /**
+         * Determine if the application events are cached.
+         *
+         * @return bool 
+         * @static 
+         */ 
+        public static function eventsAreCached()
+        {
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->eventsAreCached();
+        }
+                    /**
+         * Get the path to the events cache file.
+         *
+         * @return string 
+         * @static 
+         */ 
+        public static function getCachedEventsPath()
+        {
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->getCachedEventsPath();
         }
-        
-        /**
+                    /**
          * Determine if the application is currently down for maintenance.
          *
          * @return bool 
@@ -613,10 +652,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function isDownForMaintenance()
         {
-            return \Illuminate\Foundation\Application::isDownForMaintenance();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->isDownForMaintenance();
         }
-        
-        /**
+                    /**
          * Throw an HttpException with the given data.
          *
          * @param int $code
@@ -624,26 +663,27 @@ namespace Illuminate\Support\Facades {
          * @param array $headers
          * @return void 
          * @throws \Symfony\Component\HttpKernel\Exception\HttpException
+         * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
          * @static 
          */ 
-        public static function abort($code, $message = '', $headers = array())
+        public static function abort($code, $message = '', $headers = [])
         {
-            \Illuminate\Foundation\Application::abort($code, $message, $headers);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->abort($code, $message, $headers);
         }
-        
-        /**
+                    /**
          * Register a terminating callback with the application.
          *
-         * @param \Closure $callback
-         * @return $this 
+         * @param callable|string $callback
+         * @return \Illuminate\Foundation\Application 
          * @static 
          */ 
         public static function terminating($callback)
         {
-            return \Illuminate\Foundation\Application::terminating($callback);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->terminating($callback);
         }
-        
-        /**
+                    /**
          * Terminate the application.
          *
          * @return void 
@@ -651,10 +691,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function terminate()
         {
-            \Illuminate\Foundation\Application::terminate();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->terminate();
         }
-        
-        /**
+                    /**
          * Get the service providers that have been loaded.
          *
          * @return array 
@@ -662,10 +702,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getLoadedProviders()
         {
-            return \Illuminate\Foundation\Application::getLoadedProviders();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->getLoadedProviders();
         }
-        
-        /**
+                    /**
          * Get the application's deferred services.
          *
          * @return array 
@@ -673,10 +713,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDeferredServices()
         {
-            return \Illuminate\Foundation\Application::getDeferredServices();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->getDeferredServices();
         }
-        
-        /**
+                    /**
          * Set the application's deferred services.
          *
          * @param array $services
@@ -685,10 +725,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setDeferredServices($services)
         {
-            \Illuminate\Foundation\Application::setDeferredServices($services);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->setDeferredServices($services);
         }
-        
-        /**
+                    /**
          * Add an array of services to the application's deferred services.
          *
          * @param array $services
@@ -697,10 +737,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function addDeferredServices($services)
         {
-            \Illuminate\Foundation\Application::addDeferredServices($services);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->addDeferredServices($services);
         }
-        
-        /**
+                    /**
          * Determine if the given service is a deferred service.
          *
          * @param string $service
@@ -709,10 +749,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function isDeferredService($service)
         {
-            return \Illuminate\Foundation\Application::isDeferredService($service);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->isDeferredService($service);
         }
-        
-        /**
+                    /**
          * Configure the real-time facade namespace.
          *
          * @param string $namespace
@@ -721,10 +761,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function provideFacades($namespace)
         {
-            \Illuminate\Foundation\Application::provideFacades($namespace);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->provideFacades($namespace);
         }
-        
-        /**
+                    /**
          * Get the current application locale.
          *
          * @return string 
@@ -732,10 +772,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getLocale()
         {
-            return \Illuminate\Foundation\Application::getLocale();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->getLocale();
         }
-        
-        /**
+                    /**
          * Set the current application locale.
          *
          * @param string $locale
@@ -744,10 +784,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setLocale($locale)
         {
-            \Illuminate\Foundation\Application::setLocale($locale);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->setLocale($locale);
         }
-        
-        /**
+                    /**
          * Determine if application locale is the given locale.
          *
          * @param string $locale
@@ -756,10 +796,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function isLocale($locale)
         {
-            return \Illuminate\Foundation\Application::isLocale($locale);
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->isLocale($locale);
         }
-        
-        /**
+                    /**
          * Register the core class aliases in the container.
          *
          * @return void 
@@ -767,10 +807,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function registerCoreContainerAliases()
         {
-            \Illuminate\Foundation\Application::registerCoreContainerAliases();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->registerCoreContainerAliases();
         }
-        
-        /**
+                    /**
          * Flush the container of all bindings and resolved instances.
          *
          * @return void 
@@ -778,10 +818,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flush()
         {
-            \Illuminate\Foundation\Application::flush();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->flush();
         }
-        
-        /**
+                    /**
          * Get the application namespace.
          *
          * @return string 
@@ -790,23 +830,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getNamespace()
         {
-            return \Illuminate\Foundation\Application::getNamespace();
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->getNamespace();
         }
-        
-        /**
+                    /**
          * Define a contextual binding.
          *
-         * @param string $concrete
+         * @param array|string $concrete
          * @return \Illuminate\Contracts\Container\ContextualBindingBuilder 
          * @static 
          */ 
         public static function when($concrete)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::when($concrete);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->when($concrete);
         }
-        
-        /**
+                    /**
          * Returns true if the container can return an entry for the given identifier.
          * 
          * Returns false otherwise.
@@ -819,12 +858,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function has($id)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::has($id);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->has($id);
         }
-        
-        /**
+                    /**
          * Determine if the given abstract type has been resolved.
          *
          * @param string $abstract
@@ -832,12 +870,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function resolved($abstract)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::resolved($abstract);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->resolved($abstract);
         }
-        
-        /**
+                    /**
          * Determine if a given type is shared.
          *
          * @param string $abstract
@@ -845,12 +882,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function isShared($abstract)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::isShared($abstract);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->isShared($abstract);
         }
-        
-        /**
+                    /**
          * Determine if a given string is an alias.
          *
          * @param string $name
@@ -858,12 +894,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function isAlias($name)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::isAlias($name);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->isAlias($name);
         }
-        
-        /**
+                    /**
          * Register a binding with the container.
          *
          * @param string $abstract
@@ -873,12 +908,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function bind($abstract, $concrete = null, $shared = false)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::bind($abstract, $concrete, $shared);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->bind($abstract, $concrete, $shared);
         }
-        
-        /**
+                    /**
          * Determine if the container has a method binding.
          *
          * @param string $method
@@ -886,12 +920,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function hasMethodBinding($method)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::hasMethodBinding($method);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->hasMethodBinding($method);
         }
-        
-        /**
+                    /**
          * Bind a callback to resolve with Container::call.
          *
          * @param array|string $method
@@ -900,12 +933,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function bindMethod($method, $callback)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::bindMethod($method, $callback);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->bindMethod($method, $callback);
         }
-        
-        /**
+                    /**
          * Get the method binding for the given method.
          *
          * @param string $method
@@ -914,12 +946,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function callMethodBinding($method, $instance)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::callMethodBinding($method, $instance);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->callMethodBinding($method, $instance);
         }
-        
-        /**
+                    /**
          * Add a contextual binding to the container.
          *
          * @param string $concrete
@@ -929,12 +960,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function addContextualBinding($concrete, $abstract, $implementation)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::addContextualBinding($concrete, $abstract, $implementation);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->addContextualBinding($concrete, $abstract, $implementation);
         }
-        
-        /**
+                    /**
          * Register a binding if it hasn't already been registered.
          *
          * @param string $abstract
@@ -944,12 +974,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function bindIf($abstract, $concrete = null, $shared = false)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::bindIf($abstract, $concrete, $shared);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->bindIf($abstract, $concrete, $shared);
         }
-        
-        /**
+                    /**
          * Register a shared binding in the container.
          *
          * @param string $abstract
@@ -958,12 +987,24 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function singleton($abstract, $concrete = null)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::singleton($abstract, $concrete);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->singleton($abstract, $concrete);
+        }
+                    /**
+         * Register a shared binding if it hasn't already been registered.
+         *
+         * @param string $abstract
+         * @param \Closure|string|null $concrete
+         * @return void 
+         * @static 
+         */ 
+        public static function singletonIf($abstract, $concrete = null)
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->singletonIf($abstract, $concrete);
         }
-        
-        /**
+                    /**
          * "Extend" an abstract type in the container.
          *
          * @param string $abstract
@@ -973,12 +1014,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function extend($abstract, $closure)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::extend($abstract, $closure);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->extend($abstract, $closure);
         }
-        
-        /**
+                    /**
          * Register an existing instance as shared in the container.
          *
          * @param string $abstract
@@ -987,12 +1027,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function instance($abstract, $instance)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::instance($abstract, $instance);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->instance($abstract, $instance);
         }
-        
-        /**
+                    /**
          * Assign a set of tags to a given binding.
          *
          * @param array|string $abstracts
@@ -1001,39 +1040,37 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function tag($abstracts, $tags)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::tag($abstracts, $tags);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->tag($abstracts, $tags);
         }
-        
-        /**
+                    /**
          * Resolve all of the bindings for a given tag.
          *
          * @param string $tag
-         * @return array 
+         * @return \Illuminate\Container\iterable 
          * @static 
          */ 
         public static function tagged($tag)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::tagged($tag);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->tagged($tag);
         }
-        
-        /**
+                    /**
          * Alias a type to a different name.
          *
          * @param string $abstract
          * @param string $alias
          * @return void 
+         * @throws \LogicException
          * @static 
          */ 
         public static function alias($abstract, $alias)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::alias($abstract, $alias);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->alias($abstract, $alias);
         }
-        
-        /**
+                    /**
          * Bind a new callback to an abstract's rebind event.
          *
          * @param string $abstract
@@ -1042,12 +1079,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function rebinding($abstract, $callback)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::rebinding($abstract, $callback);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->rebinding($abstract, $callback);
         }
-        
-        /**
+                    /**
          * Refresh an instance on the given target and method.
          *
          * @param string $abstract
@@ -1057,12 +1093,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function refresh($abstract, $target, $method)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::refresh($abstract, $target, $method);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->refresh($abstract, $target, $method);
         }
-        
-        /**
+                    /**
          * Wrap the given closure such that its dependencies will be injected when executed.
          *
          * @param \Closure $callback
@@ -1070,13 +1105,12 @@ namespace Illuminate\Support\Facades {
          * @return \Closure 
          * @static 
          */ 
-        public static function wrap($callback, $parameters = array())
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::wrap($callback, $parameters);
+        public static function wrap($callback, $parameters = [])
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->wrap($callback, $parameters);
         }
-        
-        /**
+                    /**
          * Call the given Closure / class@method and inject its dependencies.
          *
          * @param callable|string $callback
@@ -1085,13 +1119,12 @@ namespace Illuminate\Support\Facades {
          * @return mixed 
          * @static 
          */ 
-        public static function call($callback, $parameters = array(), $defaultMethod = null)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::call($callback, $parameters, $defaultMethod);
+        public static function call($callback, $parameters = [], $defaultMethod = null)
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->call($callback, $parameters, $defaultMethod);
         }
-        
-        /**
+                    /**
          * Get a closure to resolve the given type from the container.
          *
          * @param string $abstract
@@ -1099,12 +1132,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function factory($abstract)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::factory($abstract);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->factory($abstract);
         }
-        
-        /**
+                    /**
          * An alias function name for make().
          *
          * @param string $abstract
@@ -1112,13 +1144,12 @@ namespace Illuminate\Support\Facades {
          * @return mixed 
          * @static 
          */ 
-        public static function makeWith($abstract, $parameters = array())
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::makeWith($abstract, $parameters);
+        public static function makeWith($abstract, $parameters = [])
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->makeWith($abstract, $parameters);
         }
-        
-        /**
+                    /**
          * Finds an entry of the container by its identifier and returns it.
          *
          * @param string $id Identifier of the entry to look for.
@@ -1128,12 +1159,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function get($id)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::get($id);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->get($id);
         }
-        
-        /**
+                    /**
          * Instantiate a concrete instance of the given type.
          *
          * @param string $concrete
@@ -1142,12 +1172,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function build($concrete)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::build($concrete);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->build($concrete);
         }
-        
-        /**
+                    /**
          * Register a new resolving callback.
          *
          * @param \Closure|string $abstract
@@ -1156,12 +1185,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function resolving($abstract, $callback = null)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::resolving($abstract, $callback);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->resolving($abstract, $callback);
         }
-        
-        /**
+                    /**
          * Register a new after resolving callback for all types.
          *
          * @param \Closure|string $abstract
@@ -1170,38 +1198,34 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function afterResolving($abstract, $callback = null)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::afterResolving($abstract, $callback);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->afterResolving($abstract, $callback);
         }
-        
-        /**
+                    /**
          * Get the container's bindings.
          *
          * @return array 
          * @static 
          */ 
         public static function getBindings()
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::getBindings();
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->getBindings();
         }
-        
-        /**
+                    /**
          * Get the alias for an abstract if available.
          *
          * @param string $abstract
          * @return string 
-         * @throws \LogicException
          * @static 
          */ 
         public static function getAlias($abstract)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::getAlias($abstract);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->getAlias($abstract);
         }
-        
-        /**
+                    /**
          * Remove all of the extender callbacks for a given type.
          *
          * @param string $abstract
@@ -1209,12 +1233,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function forgetExtenders($abstract)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::forgetExtenders($abstract);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->forgetExtenders($abstract);
         }
-        
-        /**
+                    /**
          * Remove a resolved instance from the instance cache.
          *
          * @param string $abstract
@@ -1222,36 +1245,32 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function forgetInstance($abstract)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::forgetInstance($abstract);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->forgetInstance($abstract);
         }
-        
-        /**
+                    /**
          * Clear all of the instances from the container.
          *
          * @return void 
          * @static 
          */ 
         public static function forgetInstances()
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::forgetInstances();
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->forgetInstances();
         }
-        
-        /**
-         * Set the globally available instance of the container.
+                    /**
+         * Get the globally available instance of the container.
          *
          * @return static 
          * @static 
          */ 
         public static function getInstance()
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::getInstance();
+        {            //Method inherited from \Illuminate\Container\Container         
+                        return \Illuminate\Foundation\Application::getInstance();
         }
-        
-        /**
+                    /**
          * Set the shared instance of the container.
          *
          * @param \Illuminate\Contracts\Container\Container|null $container
@@ -1259,12 +1278,10 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function setInstance($container = null)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::setInstance($container);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        return \Illuminate\Foundation\Application::setInstance($container);
         }
-        
-        /**
+                    /**
          * Determine if a given offset exists.
          *
          * @param string $key
@@ -1272,12 +1289,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function offsetExists($key)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::offsetExists($key);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->offsetExists($key);
         }
-        
-        /**
+                    /**
          * Get the value at a given offset.
          *
          * @param string $key
@@ -1285,12 +1301,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function offsetGet($key)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::offsetGet($key);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        return $instance->offsetGet($key);
         }
-        
-        /**
+                    /**
          * Set the value at a given offset.
          *
          * @param string $key
@@ -1299,12 +1314,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function offsetSet($key, $value)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::offsetSet($key, $value);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->offsetSet($key, $value);
         }
-        
-        /**
+                    /**
          * Unset the value at a given offset.
          *
          * @param string $key
@@ -1312,35 +1326,32 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function offsetUnset($key)
-        {
-            //Method inherited from \Illuminate\Container\Container            
-            \Illuminate\Foundation\Application::offsetUnset($key);
+        {            //Method inherited from \Illuminate\Container\Container         
+                        /** @var \Illuminate\Foundation\Application $instance */
+                        $instance->offsetUnset($key);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Contracts\Console\Kernel
      */ 
-    class Artisan {
-        
-        /**
+        class Artisan {
+                    /**
          * Run the console application.
          *
          * @param \Symfony\Component\Console\Input\InputInterface $input
-         * @param \Symfony\Component\Console\Output\OutputInterface $output
+         * @param \Symfony\Component\Console\Output\OutputInterface|null $output
          * @return int 
          * @static 
          */ 
         public static function handle($input, $output = null)
-        {
-            //Method inherited from \Illuminate\Foundation\Console\Kernel            
-            return \App\Console\Kernel::handle($input, $output);
+        {            //Method inherited from \Illuminate\Foundation\Console\Kernel         
+                        /** @var \App\Console\Kernel $instance */
+                        return $instance->handle($input, $output);
         }
-        
-        /**
+                    /**
          * Terminate the application.
          *
          * @param \Symfony\Component\Console\Input\InputInterface $input
@@ -1349,12 +1360,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function terminate($input, $status)
-        {
-            //Method inherited from \Illuminate\Foundation\Console\Kernel            
-            \App\Console\Kernel::terminate($input, $status);
+        {            //Method inherited from \Illuminate\Foundation\Console\Kernel         
+                        /** @var \App\Console\Kernel $instance */
+                        $instance->terminate($input, $status);
         }
-        
-        /**
+                    /**
          * Register a Closure based command with the application.
          *
          * @param string $signature
@@ -1363,12 +1373,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function command($signature, $callback)
-        {
-            //Method inherited from \Illuminate\Foundation\Console\Kernel            
-            return \App\Console\Kernel::command($signature, $callback);
+        {            //Method inherited from \Illuminate\Foundation\Console\Kernel         
+                        /** @var \App\Console\Kernel $instance */
+                        return $instance->command($signature, $callback);
         }
-        
-        /**
+                    /**
          * Register the given command with the console application.
          *
          * @param \Symfony\Component\Console\Command\Command $command
@@ -1376,27 +1385,26 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function registerCommand($command)
-        {
-            //Method inherited from \Illuminate\Foundation\Console\Kernel            
-            \App\Console\Kernel::registerCommand($command);
+        {            //Method inherited from \Illuminate\Foundation\Console\Kernel         
+                        /** @var \App\Console\Kernel $instance */
+                        $instance->registerCommand($command);
         }
-        
-        /**
+                    /**
          * Run an Artisan console command by name.
          *
          * @param string $command
          * @param array $parameters
-         * @param \Symfony\Component\Console\Output\OutputInterface $outputBuffer
+         * @param \Symfony\Component\Console\Output\OutputInterface|null $outputBuffer
          * @return int 
+         * @throws \Symfony\Component\Console\Exception\CommandNotFoundException
          * @static 
          */ 
-        public static function call($command, $parameters = array(), $outputBuffer = null)
-        {
-            //Method inherited from \Illuminate\Foundation\Console\Kernel            
-            return \App\Console\Kernel::call($command, $parameters, $outputBuffer);
+        public static function call($command, $parameters = [], $outputBuffer = null)
+        {            //Method inherited from \Illuminate\Foundation\Console\Kernel         
+                        /** @var \App\Console\Kernel $instance */
+                        return $instance->call($command, $parameters, $outputBuffer);
         }
-        
-        /**
+                    /**
          * Queue the given console command.
          *
          * @param string $command
@@ -1404,49 +1412,45 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Foundation\Bus\PendingDispatch 
          * @static 
          */ 
-        public static function queue($command, $parameters = array())
-        {
-            //Method inherited from \Illuminate\Foundation\Console\Kernel            
-            return \App\Console\Kernel::queue($command, $parameters);
+        public static function queue($command, $parameters = [])
+        {            //Method inherited from \Illuminate\Foundation\Console\Kernel         
+                        /** @var \App\Console\Kernel $instance */
+                        return $instance->queue($command, $parameters);
         }
-        
-        /**
+                    /**
          * Get all of the commands registered with the console.
          *
          * @return array 
          * @static 
          */ 
         public static function all()
-        {
-            //Method inherited from \Illuminate\Foundation\Console\Kernel            
-            return \App\Console\Kernel::all();
+        {            //Method inherited from \Illuminate\Foundation\Console\Kernel         
+                        /** @var \App\Console\Kernel $instance */
+                        return $instance->all();
         }
-        
-        /**
+                    /**
          * Get the output for the last run command.
          *
          * @return string 
          * @static 
          */ 
         public static function output()
-        {
-            //Method inherited from \Illuminate\Foundation\Console\Kernel            
-            return \App\Console\Kernel::output();
+        {            //Method inherited from \Illuminate\Foundation\Console\Kernel         
+                        /** @var \App\Console\Kernel $instance */
+                        return $instance->output();
         }
-        
-        /**
+                    /**
          * Bootstrap the application for artisan commands.
          *
          * @return void 
          * @static 
          */ 
         public static function bootstrap()
-        {
-            //Method inherited from \Illuminate\Foundation\Console\Kernel            
-            \App\Console\Kernel::bootstrap();
+        {            //Method inherited from \Illuminate\Foundation\Console\Kernel         
+                        /** @var \App\Console\Kernel $instance */
+                        $instance->bootstrap();
         }
-        
-        /**
+                    /**
          * Set the Artisan application instance.
          *
          * @param \Illuminate\Console\Application $artisan
@@ -1454,14 +1458,13 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function setArtisan($artisan)
-        {
-            //Method inherited from \Illuminate\Foundation\Console\Kernel            
-            \App\Console\Kernel::setArtisan($artisan);
+        {            //Method inherited from \Illuminate\Foundation\Console\Kernel         
+                        /** @var \App\Console\Kernel $instance */
+                        $instance->setArtisan($artisan);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Auth\AuthManager
@@ -1469,21 +1472,20 @@ namespace Illuminate\Support\Facades {
      * @see \Illuminate\Contracts\Auth\Guard
      * @see \Illuminate\Contracts\Auth\StatefulGuard
      */ 
-    class Auth {
-        
-        /**
+        class Auth {
+                    /**
          * Attempt to get the guard from the local cache.
          *
-         * @param string $name
+         * @param string|null $name
          * @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard 
          * @static 
          */ 
         public static function guard($name = null)
         {
-            return \Illuminate\Auth\AuthManager::guard($name);
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        return $instance->guard($name);
         }
-        
-        /**
+                    /**
          * Create a session based authentication guard.
          *
          * @param string $name
@@ -1493,10 +1495,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function createSessionDriver($name, $config)
         {
-            return \Illuminate\Auth\AuthManager::createSessionDriver($name, $config);
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        return $instance->createSessionDriver($name, $config);
         }
-        
-        /**
+                    /**
          * Create a token based authentication guard.
          *
          * @param string $name
@@ -1506,10 +1508,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function createTokenDriver($name, $config)
         {
-            return \Illuminate\Auth\AuthManager::createTokenDriver($name, $config);
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        return $instance->createTokenDriver($name, $config);
         }
-        
-        /**
+                    /**
          * Get the default authentication driver name.
          *
          * @return string 
@@ -1517,10 +1519,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDefaultDriver()
         {
-            return \Illuminate\Auth\AuthManager::getDefaultDriver();
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        return $instance->getDefaultDriver();
         }
-        
-        /**
+                    /**
          * Set the default guard driver the factory should serve.
          *
          * @param string $name
@@ -1529,10 +1531,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function shouldUse($name)
         {
-            \Illuminate\Auth\AuthManager::shouldUse($name);
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        $instance->shouldUse($name);
         }
-        
-        /**
+                    /**
          * Set the default authentication driver name.
          *
          * @param string $name
@@ -1541,23 +1543,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setDefaultDriver($name)
         {
-            \Illuminate\Auth\AuthManager::setDefaultDriver($name);
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        $instance->setDefaultDriver($name);
         }
-        
-        /**
+                    /**
          * Register a new callback based request guard.
          *
          * @param string $driver
          * @param callable $callback
-         * @return $this 
+         * @return \Illuminate\Auth\AuthManager 
          * @static 
          */ 
         public static function viaRequest($driver, $callback)
         {
-            return \Illuminate\Auth\AuthManager::viaRequest($driver, $callback);
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        return $instance->viaRequest($driver, $callback);
         }
-        
-        /**
+                    /**
          * Get the user resolver callback.
          *
          * @return \Closure 
@@ -1565,48 +1567,59 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function userResolver()
         {
-            return \Illuminate\Auth\AuthManager::userResolver();
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        return $instance->userResolver();
         }
-        
-        /**
+                    /**
          * Set the callback to be used to resolve users.
          *
          * @param \Closure $userResolver
-         * @return $this 
+         * @return \Illuminate\Auth\AuthManager 
          * @static 
          */ 
         public static function resolveUsersUsing($userResolver)
         {
-            return \Illuminate\Auth\AuthManager::resolveUsersUsing($userResolver);
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        return $instance->resolveUsersUsing($userResolver);
         }
-        
-        /**
+                    /**
          * Register a custom driver creator Closure.
          *
          * @param string $driver
          * @param \Closure $callback
-         * @return $this 
+         * @return \Illuminate\Auth\AuthManager 
          * @static 
          */ 
         public static function extend($driver, $callback)
         {
-            return \Illuminate\Auth\AuthManager::extend($driver, $callback);
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        return $instance->extend($driver, $callback);
         }
-        
-        /**
+                    /**
          * Register a custom provider creator Closure.
          *
          * @param string $name
          * @param \Closure $callback
-         * @return $this 
+         * @return \Illuminate\Auth\AuthManager 
          * @static 
          */ 
         public static function provider($name, $callback)
         {
-            return \Illuminate\Auth\AuthManager::provider($name, $callback);
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        return $instance->provider($name, $callback);
+        }
+                    /**
+         * Determines if any guards have already been resolved.
+         *
+         * @return bool 
+         * @static 
+         */ 
+        public static function hasResolvedGuards()
+        {
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        return $instance->hasResolvedGuards();
         }
-        
-        /**
+                    /**
          * Create the user provider implementation for the driver.
          *
          * @param string|null $provider
@@ -1616,10 +1629,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function createUserProvider($provider = null)
         {
-            return \Illuminate\Auth\AuthManager::createUserProvider($provider);
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        return $instance->createUserProvider($provider);
         }
-        
-        /**
+                    /**
          * Get the default user provider name.
          *
          * @return string 
@@ -1627,10 +1640,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDefaultUserProvider()
         {
-            return \Illuminate\Auth\AuthManager::getDefaultUserProvider();
+                        /** @var \Illuminate\Auth\AuthManager $instance */
+                        return $instance->getDefaultUserProvider();
         }
-        
-        /**
+                    /**
          * Get the currently authenticated user.
          *
          * @return \App\User|null 
@@ -1638,10 +1651,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function user()
         {
-            return \Illuminate\Auth\SessionGuard::user();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->user();
         }
-        
-        /**
+                    /**
          * Get the ID for the currently authenticated user.
          *
          * @return int|null 
@@ -1649,22 +1662,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function id()
         {
-            return \Illuminate\Auth\SessionGuard::id();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->id();
         }
-        
-        /**
+                    /**
          * Log a user into the application without sessions or cookies.
          *
          * @param array $credentials
          * @return bool 
          * @static 
          */ 
-        public static function once($credentials = array())
+        public static function once($credentials = [])
         {
-            return \Illuminate\Auth\SessionGuard::once($credentials);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->once($credentials);
         }
-        
-        /**
+                    /**
          * Log the given user ID into the application without sessions or cookies.
          *
          * @param mixed $id
@@ -1673,22 +1686,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function onceUsingId($id)
         {
-            return \Illuminate\Auth\SessionGuard::onceUsingId($id);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->onceUsingId($id);
         }
-        
-        /**
+                    /**
          * Validate a user's credentials.
          *
          * @param array $credentials
          * @return bool 
          * @static 
          */ 
-        public static function validate($credentials = array())
+        public static function validate($credentials = [])
         {
-            return \Illuminate\Auth\SessionGuard::validate($credentials);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->validate($credentials);
         }
-        
-        /**
+                    /**
          * Attempt to authenticate using HTTP Basic Auth.
          *
          * @param string $field
@@ -1696,12 +1709,12 @@ namespace Illuminate\Support\Facades {
          * @return \Symfony\Component\HttpFoundation\Response|null 
          * @static 
          */ 
-        public static function basic($field = 'email', $extraConditions = array())
+        public static function basic($field = 'email', $extraConditions = [])
         {
-            return \Illuminate\Auth\SessionGuard::basic($field, $extraConditions);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->basic($field, $extraConditions);
         }
-        
-        /**
+                    /**
          * Perform a stateless HTTP Basic login attempt.
          *
          * @param string $field
@@ -1709,12 +1722,12 @@ namespace Illuminate\Support\Facades {
          * @return \Symfony\Component\HttpFoundation\Response|null 
          * @static 
          */ 
-        public static function onceBasic($field = 'email', $extraConditions = array())
+        public static function onceBasic($field = 'email', $extraConditions = [])
         {
-            return \Illuminate\Auth\SessionGuard::onceBasic($field, $extraConditions);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->onceBasic($field, $extraConditions);
         }
-        
-        /**
+                    /**
          * Attempt to authenticate a user using the given credentials.
          *
          * @param array $credentials
@@ -1722,12 +1735,12 @@ namespace Illuminate\Support\Facades {
          * @return bool 
          * @static 
          */ 
-        public static function attempt($credentials = array(), $remember = false)
+        public static function attempt($credentials = [], $remember = false)
         {
-            return \Illuminate\Auth\SessionGuard::attempt($credentials, $remember);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->attempt($credentials, $remember);
         }
-        
-        /**
+                    /**
          * Log the given user ID into the application.
          *
          * @param mixed $id
@@ -1737,10 +1750,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function loginUsingId($id, $remember = false)
         {
-            return \Illuminate\Auth\SessionGuard::loginUsingId($id, $remember);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->loginUsingId($id, $remember);
         }
-        
-        /**
+                    /**
          * Log a user into the application.
          *
          * @param \Illuminate\Contracts\Auth\Authenticatable $user
@@ -1750,10 +1763,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function login($user, $remember = false)
         {
-            \Illuminate\Auth\SessionGuard::login($user, $remember);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        $instance->login($user, $remember);
         }
-        
-        /**
+                    /**
          * Log the user out of the application.
          *
          * @return void 
@@ -1761,25 +1774,36 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function logout()
         {
-            \Illuminate\Auth\SessionGuard::logout();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        $instance->logout();
+        }
+                    /**
+         * Log the user out of the application on their current device only.
+         *
+         * @return void 
+         * @static 
+         */ 
+        public static function logoutCurrentDevice()
+        {
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        $instance->logoutCurrentDevice();
         }
-        
-        /**
+                    /**
          * Invalidate other sessions for the current user.
          * 
          * The application must be using the AuthenticateSession middleware.
          *
          * @param string $password
          * @param string $attribute
-         * @return null|bool 
+         * @return bool|null 
          * @static 
          */ 
         public static function logoutOtherDevices($password, $attribute = 'password')
         {
-            return \Illuminate\Auth\SessionGuard::logoutOtherDevices($password, $attribute);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->logoutOtherDevices($password, $attribute);
         }
-        
-        /**
+                    /**
          * Register an authentication attempt event listener.
          *
          * @param mixed $callback
@@ -1788,10 +1812,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function attempting($callback)
         {
-            \Illuminate\Auth\SessionGuard::attempting($callback);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        $instance->attempting($callback);
         }
-        
-        /**
+                    /**
          * Get the last user we attempted to authenticate.
          *
          * @return \App\User 
@@ -1799,10 +1823,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getLastAttempted()
         {
-            return \Illuminate\Auth\SessionGuard::getLastAttempted();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->getLastAttempted();
         }
-        
-        /**
+                    /**
          * Get a unique identifier for the auth session value.
          *
          * @return string 
@@ -1810,10 +1834,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getName()
         {
-            return \Illuminate\Auth\SessionGuard::getName();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->getName();
         }
-        
-        /**
+                    /**
          * Get the name of the cookie used to store the "recaller".
          *
          * @return string 
@@ -1821,10 +1845,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getRecallerName()
         {
-            return \Illuminate\Auth\SessionGuard::getRecallerName();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->getRecallerName();
         }
-        
-        /**
+                    /**
          * Determine if the user was authenticated via "remember me" cookie.
          *
          * @return bool 
@@ -1832,10 +1856,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function viaRemember()
         {
-            return \Illuminate\Auth\SessionGuard::viaRemember();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->viaRemember();
         }
-        
-        /**
+                    /**
          * Get the cookie creator instance used by the guard.
          *
          * @return \Illuminate\Contracts\Cookie\QueueingFactory 
@@ -1844,10 +1868,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getCookieJar()
         {
-            return \Illuminate\Auth\SessionGuard::getCookieJar();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->getCookieJar();
         }
-        
-        /**
+                    /**
          * Set the cookie creator instance used by the guard.
          *
          * @param \Illuminate\Contracts\Cookie\QueueingFactory $cookie
@@ -1856,10 +1880,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setCookieJar($cookie)
         {
-            \Illuminate\Auth\SessionGuard::setCookieJar($cookie);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        $instance->setCookieJar($cookie);
         }
-        
-        /**
+                    /**
          * Get the event dispatcher instance.
          *
          * @return \Illuminate\Contracts\Events\Dispatcher 
@@ -1867,10 +1891,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDispatcher()
         {
-            return \Illuminate\Auth\SessionGuard::getDispatcher();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->getDispatcher();
         }
-        
-        /**
+                    /**
          * Set the event dispatcher instance.
          *
          * @param \Illuminate\Contracts\Events\Dispatcher $events
@@ -1879,10 +1903,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setDispatcher($events)
         {
-            \Illuminate\Auth\SessionGuard::setDispatcher($events);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        $instance->setDispatcher($events);
         }
-        
-        /**
+                    /**
          * Get the session store used by the guard.
          *
          * @return \Illuminate\Contracts\Session\Session 
@@ -1890,10 +1914,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getSession()
         {
-            return \Illuminate\Auth\SessionGuard::getSession();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->getSession();
         }
-        
-        /**
+                    /**
          * Return the currently cached user.
          *
          * @return \App\User|null 
@@ -1901,22 +1925,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getUser()
         {
-            return \Illuminate\Auth\SessionGuard::getUser();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->getUser();
         }
-        
-        /**
+                    /**
          * Set the current user.
          *
          * @param \Illuminate\Contracts\Auth\Authenticatable $user
-         * @return $this 
+         * @return \Illuminate\Auth\SessionGuard 
          * @static 
          */ 
         public static function setUser($user)
         {
-            return \Illuminate\Auth\SessionGuard::setUser($user);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->setUser($user);
         }
-        
-        /**
+                    /**
          * Get the current request instance.
          *
          * @return \Symfony\Component\HttpFoundation\Request 
@@ -1924,23 +1948,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getRequest()
         {
-            return \Illuminate\Auth\SessionGuard::getRequest();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->getRequest();
         }
-        
-        /**
+                    /**
          * Set the current request instance.
          *
          * @param \Symfony\Component\HttpFoundation\Request $request
-         * @return $this 
+         * @return \Illuminate\Auth\SessionGuard 
          * @static 
          */ 
         public static function setRequest($request)
         {
-            return \Illuminate\Auth\SessionGuard::setRequest($request);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->setRequest($request);
         }
-        
-        /**
-         * Determine if the current user is authenticated.
+                    /**
+         * Determine if current user is authenticated. If not, throw an exception.
          *
          * @return \App\User 
          * @throws \Illuminate\Auth\AuthenticationException
@@ -1948,10 +1972,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function authenticate()
         {
-            return \Illuminate\Auth\SessionGuard::authenticate();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->authenticate();
         }
-        
-        /**
+                    /**
          * Determine if the guard has a user instance.
          *
          * @return bool 
@@ -1959,10 +1983,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasUser()
         {
-            return \Illuminate\Auth\SessionGuard::hasUser();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->hasUser();
         }
-        
-        /**
+                    /**
          * Determine if the current user is authenticated.
          *
          * @return bool 
@@ -1970,10 +1994,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function check()
         {
-            return \Illuminate\Auth\SessionGuard::check();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->check();
         }
-        
-        /**
+                    /**
          * Determine if the current user is a guest.
          *
          * @return bool 
@@ -1981,10 +2005,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function guest()
         {
-            return \Illuminate\Auth\SessionGuard::guest();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->guest();
         }
-        
-        /**
+                    /**
          * Get the user provider used by the guard.
          *
          * @return \Illuminate\Contracts\Auth\UserProvider 
@@ -1992,10 +2016,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getProvider()
         {
-            return \Illuminate\Auth\SessionGuard::getProvider();
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        return $instance->getProvider();
         }
-        
-        /**
+                    /**
          * Set the user provider used by the guard.
          *
          * @param \Illuminate\Contracts\Auth\UserProvider $provider
@@ -2004,10 +2028,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setProvider($provider)
         {
-            \Illuminate\Auth\SessionGuard::setProvider($provider);
+                        /** @var \Illuminate\Auth\SessionGuard $instance */
+                        $instance->setProvider($provider);
         }
-        
-        /**
+                    /**
          * Register a custom macro.
          *
          * @param string $name
@@ -2017,23 +2041,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function macro($name, $macro)
         {
-            \Illuminate\Auth\SessionGuard::macro($name, $macro);
+                        \Illuminate\Auth\SessionGuard::macro($name, $macro);
         }
-        
-        /**
+                    /**
          * Mix another object into the class.
          *
          * @param object $mixin
+         * @param bool $replace
          * @return void 
          * @throws \ReflectionException
          * @static 
          */ 
-        public static function mixin($mixin)
+        public static function mixin($mixin, $replace = true)
         {
-            \Illuminate\Auth\SessionGuard::mixin($mixin);
+                        \Illuminate\Auth\SessionGuard::mixin($mixin, $replace);
         }
-        
-        /**
+                    /**
          * Checks if macro is registered.
          *
          * @param string $name
@@ -2042,31 +2065,29 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasMacro($name)
         {
-            return \Illuminate\Auth\SessionGuard::hasMacro($name);
+                        return \Illuminate\Auth\SessionGuard::hasMacro($name);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\View\Compilers\BladeCompiler
      */ 
-    class Blade {
-        
-        /**
+        class Blade {
+                    /**
          * Compile the view at the given path.
          *
-         * @param string $path
+         * @param string|null $path
          * @return void 
          * @static 
          */ 
         public static function compile($path = null)
         {
-            \Illuminate\View\Compilers\BladeCompiler::compile($path);
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        $instance->compile($path);
         }
-        
-        /**
+                    /**
          * Get the path currently being compiled.
          *
          * @return string 
@@ -2074,10 +2095,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getPath()
         {
-            return \Illuminate\View\Compilers\BladeCompiler::getPath();
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        return $instance->getPath();
         }
-        
-        /**
+                    /**
          * Set the path currently being compiled.
          *
          * @param string $path
@@ -2086,10 +2107,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setPath($path)
         {
-            \Illuminate\View\Compilers\BladeCompiler::setPath($path);
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        $instance->setPath($path);
         }
-        
-        /**
+                    /**
          * Compile the given Blade template contents.
          *
          * @param string $value
@@ -2098,10 +2119,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function compileString($value)
         {
-            return \Illuminate\View\Compilers\BladeCompiler::compileString($value);
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        return $instance->compileString($value);
         }
-        
-        /**
+                    /**
          * Strip the parentheses from the given expression.
          *
          * @param string $expression
@@ -2110,10 +2131,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function stripParentheses($expression)
         {
-            return \Illuminate\View\Compilers\BladeCompiler::stripParentheses($expression);
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        return $instance->stripParentheses($expression);
         }
-        
-        /**
+                    /**
          * Register a custom Blade compiler.
          *
          * @param callable $compiler
@@ -2122,10 +2143,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function extend($compiler)
         {
-            \Illuminate\View\Compilers\BladeCompiler::extend($compiler);
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        $instance->extend($compiler);
         }
-        
-        /**
+                    /**
          * Get the extensions used by the compiler.
          *
          * @return array 
@@ -2133,10 +2154,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getExtensions()
         {
-            return \Illuminate\View\Compilers\BladeCompiler::getExtensions();
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        return $instance->getExtensions();
         }
-        
-        /**
+                    /**
          * Register an "if" statement directive.
          *
          * @param string $name
@@ -2146,10 +2167,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function if($name, $callback)
         {
-            \Illuminate\View\Compilers\BladeCompiler::if($name, $callback);
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        $instance->if($name, $callback);
         }
-        
-        /**
+                    /**
          * Check the result of a condition.
          *
          * @param string $name
@@ -2157,51 +2178,52 @@ namespace Illuminate\Support\Facades {
          * @return bool 
          * @static 
          */ 
-        public static function check($name, $parameters = null)
+        public static function check($name, ...$parameters)
         {
-            return \Illuminate\View\Compilers\BladeCompiler::check($name, $parameters);
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        return $instance->check($name, ...$parameters);
         }
-        
-        /**
+                    /**
          * Register a component alias directive.
          *
          * @param string $path
-         * @param string $alias
+         * @param string|null $alias
          * @return void 
          * @static 
          */ 
         public static function component($path, $alias = null)
         {
-            \Illuminate\View\Compilers\BladeCompiler::component($path, $alias);
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        $instance->component($path, $alias);
         }
-        
-        /**
+                    /**
          * Register an include alias directive.
          *
          * @param string $path
-         * @param string $alias
+         * @param string|null $alias
          * @return void 
          * @static 
          */ 
         public static function include($path, $alias = null)
         {
-            \Illuminate\View\Compilers\BladeCompiler::include($path, $alias);
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        $instance->include($path, $alias);
         }
-        
-        /**
+                    /**
          * Register a handler for custom directives.
          *
          * @param string $name
          * @param callable $handler
          * @return void 
+         * @throws \InvalidArgumentException
          * @static 
          */ 
         public static function directive($name, $handler)
         {
-            \Illuminate\View\Compilers\BladeCompiler::directive($name, $handler);
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        $instance->directive($name, $handler);
         }
-        
-        /**
+                    /**
          * Get the list of custom directives.
          *
          * @return array 
@@ -2209,10 +2231,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getCustomDirectives()
         {
-            return \Illuminate\View\Compilers\BladeCompiler::getCustomDirectives();
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        return $instance->getCustomDirectives();
         }
-        
-        /**
+                    /**
          * Set the echo format to be used by the compiler.
          *
          * @param string $format
@@ -2221,10 +2243,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setEchoFormat($format)
         {
-            \Illuminate\View\Compilers\BladeCompiler::setEchoFormat($format);
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        $instance->setEchoFormat($format);
         }
-        
-        /**
+                    /**
          * Set the "echo" format to double encode entities.
          *
          * @return void 
@@ -2232,10 +2254,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function withDoubleEncoding()
         {
-            \Illuminate\View\Compilers\BladeCompiler::withDoubleEncoding();
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        $instance->withDoubleEncoding();
         }
-        
-        /**
+                    /**
          * Set the "echo" format to not double encode entities.
          *
          * @return void 
@@ -2243,10 +2265,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function withoutDoubleEncoding()
         {
-            \Illuminate\View\Compilers\BladeCompiler::withoutDoubleEncoding();
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        $instance->withoutDoubleEncoding();
         }
-        
-        /**
+                    /**
          * Get the path to the compiled version of a view.
          *
          * @param string $path
@@ -2254,12 +2276,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getCompiledPath($path)
-        {
-            //Method inherited from \Illuminate\View\Compilers\Compiler            
-            return \Illuminate\View\Compilers\BladeCompiler::getCompiledPath($path);
+        {            //Method inherited from \Illuminate\View\Compilers\Compiler         
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        return $instance->getCompiledPath($path);
         }
-        
-        /**
+                    /**
          * Determine if the view at the given path is expired.
          *
          * @param string $path
@@ -2267,35 +2288,21 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function isExpired($path)
-        {
-            //Method inherited from \Illuminate\View\Compilers\Compiler            
-            return \Illuminate\View\Compilers\BladeCompiler::isExpired($path);
-        }
-        
-        /**
-         * Compile the default values for the echo statement.
-         *
-         * @param string $value
-         * @return string 
-         * @static 
-         */ 
-        public static function compileEchoDefaults($value)
-        {
-            return \Illuminate\View\Compilers\BladeCompiler::compileEchoDefaults($value);
+        {            //Method inherited from \Illuminate\View\Compilers\Compiler         
+                        /** @var \Illuminate\View\Compilers\BladeCompiler $instance */
+                        return $instance->isExpired($path);
         }
          
     }
-
-    /**
+            /**
      * 
      *
-     * @method static \Illuminate\Broadcasting\Broadcasters\Broadcaster channel(string $channel, callable|string  $callback)
+     * @method static \Illuminate\Broadcasting\Broadcasters\Broadcaster channel(string $channel, callable|string  $callback, array $options = [])
      * @method static mixed auth(\Illuminate\Http\Request $request)
      * @see \Illuminate\Contracts\Broadcasting\Factory
      */ 
-    class Broadcast {
-        
-        /**
+        class Broadcast {
+                    /**
          * Register the routes for handling broadcast authentication and sockets.
          *
          * @param array|null $attributes
@@ -2304,10 +2311,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function routes($attributes = null)
         {
-            \Illuminate\Broadcasting\BroadcastManager::routes($attributes);
+                        /** @var \Illuminate\Broadcasting\BroadcastManager $instance */
+                        $instance->routes($attributes);
         }
-        
-        /**
+                    /**
          * Get the socket ID for the given request.
          *
          * @param \Illuminate\Http\Request|null $request
@@ -2316,22 +2323,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function socket($request = null)
         {
-            return \Illuminate\Broadcasting\BroadcastManager::socket($request);
+                        /** @var \Illuminate\Broadcasting\BroadcastManager $instance */
+                        return $instance->socket($request);
         }
-        
-        /**
+                    /**
          * Begin broadcasting an event.
          *
          * @param mixed|null $event
-         * @return \Illuminate\Broadcasting\PendingBroadcast|void 
+         * @return \Illuminate\Broadcasting\PendingBroadcast 
          * @static 
          */ 
         public static function event($event = null)
         {
-            return \Illuminate\Broadcasting\BroadcastManager::event($event);
+                        /** @var \Illuminate\Broadcasting\BroadcastManager $instance */
+                        return $instance->event($event);
         }
-        
-        /**
+                    /**
          * Queue the given event for broadcast.
          *
          * @param mixed $event
@@ -2340,22 +2347,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function queue($event)
         {
-            \Illuminate\Broadcasting\BroadcastManager::queue($event);
+                        /** @var \Illuminate\Broadcasting\BroadcastManager $instance */
+                        $instance->queue($event);
         }
-        
-        /**
+                    /**
          * Get a driver instance.
          *
-         * @param string $driver
+         * @param string|null $driver
          * @return mixed 
          * @static 
          */ 
         public static function connection($driver = null)
         {
-            return \Illuminate\Broadcasting\BroadcastManager::connection($driver);
+                        /** @var \Illuminate\Broadcasting\BroadcastManager $instance */
+                        return $instance->connection($driver);
         }
-        
-        /**
+                    /**
          * Get a driver instance.
          *
          * @param string|null $name
@@ -2364,10 +2371,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function driver($name = null)
         {
-            return \Illuminate\Broadcasting\BroadcastManager::driver($name);
+                        /** @var \Illuminate\Broadcasting\BroadcastManager $instance */
+                        return $instance->driver($name);
         }
-        
-        /**
+                    /**
          * Get the default driver name.
          *
          * @return string 
@@ -2375,10 +2382,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDefaultDriver()
         {
-            return \Illuminate\Broadcasting\BroadcastManager::getDefaultDriver();
+                        /** @var \Illuminate\Broadcasting\BroadcastManager $instance */
+                        return $instance->getDefaultDriver();
         }
-        
-        /**
+                    /**
          * Set the default driver name.
          *
          * @param string $name
@@ -2387,32 +2394,31 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setDefaultDriver($name)
         {
-            \Illuminate\Broadcasting\BroadcastManager::setDefaultDriver($name);
+                        /** @var \Illuminate\Broadcasting\BroadcastManager $instance */
+                        $instance->setDefaultDriver($name);
         }
-        
-        /**
+                    /**
          * Register a custom driver creator Closure.
          *
          * @param string $driver
          * @param \Closure $callback
-         * @return $this 
+         * @return \Illuminate\Broadcasting\BroadcastManager 
          * @static 
          */ 
         public static function extend($driver, $callback)
         {
-            return \Illuminate\Broadcasting\BroadcastManager::extend($driver, $callback);
+                        /** @var \Illuminate\Broadcasting\BroadcastManager $instance */
+                        return $instance->extend($driver, $callback);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Contracts\Bus\Dispatcher
      */ 
-    class Bus {
-        
-        /**
+        class Bus {
+                    /**
          * Dispatch a command to its appropriate handler.
          *
          * @param mixed $command
@@ -2421,10 +2427,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function dispatch($command)
         {
-            return \Illuminate\Bus\Dispatcher::dispatch($command);
+                        /** @var \Illuminate\Bus\Dispatcher $instance */
+                        return $instance->dispatch($command);
         }
-        
-        /**
+                    /**
          * Dispatch a command to its appropriate handler in the current process.
          *
          * @param mixed $command
@@ -2434,10 +2440,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function dispatchNow($command, $handler = null)
         {
-            return \Illuminate\Bus\Dispatcher::dispatchNow($command, $handler);
+                        /** @var \Illuminate\Bus\Dispatcher $instance */
+                        return $instance->dispatchNow($command, $handler);
         }
-        
-        /**
+                    /**
          * Determine if the given command has a handler.
          *
          * @param mixed $command
@@ -2446,10 +2452,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasCommandHandler($command)
         {
-            return \Illuminate\Bus\Dispatcher::hasCommandHandler($command);
+                        /** @var \Illuminate\Bus\Dispatcher $instance */
+                        return $instance->hasCommandHandler($command);
         }
-        
-        /**
+                    /**
          * Retrieve the handler for a command.
          *
          * @param mixed $command
@@ -2458,47 +2464,59 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getCommandHandler($command)
         {
-            return \Illuminate\Bus\Dispatcher::getCommandHandler($command);
+                        /** @var \Illuminate\Bus\Dispatcher $instance */
+                        return $instance->getCommandHandler($command);
         }
-        
-        /**
+                    /**
          * Dispatch a command to its appropriate handler behind a queue.
          *
          * @param mixed $command
          * @return mixed 
-         * @throws \RuntimeException
          * @static 
          */ 
         public static function dispatchToQueue($command)
         {
-            return \Illuminate\Bus\Dispatcher::dispatchToQueue($command);
+                        /** @var \Illuminate\Bus\Dispatcher $instance */
+                        return $instance->dispatchToQueue($command);
+        }
+                    /**
+         * Dispatch a command to its appropriate handler after the current process.
+         *
+         * @param mixed $command
+         * @param mixed $handler
+         * @return void 
+         * @static 
+         */ 
+        public static function dispatchAfterResponse($command, $handler = null)
+        {
+                        /** @var \Illuminate\Bus\Dispatcher $instance */
+                        $instance->dispatchAfterResponse($command, $handler);
         }
-        
-        /**
+                    /**
          * Set the pipes through which commands should be piped before dispatching.
          *
          * @param array $pipes
-         * @return $this 
+         * @return \Illuminate\Bus\Dispatcher 
          * @static 
          */ 
         public static function pipeThrough($pipes)
         {
-            return \Illuminate\Bus\Dispatcher::pipeThrough($pipes);
+                        /** @var \Illuminate\Bus\Dispatcher $instance */
+                        return $instance->pipeThrough($pipes);
         }
-        
-        /**
+                    /**
          * Map a command to a handler.
          *
          * @param array $map
-         * @return $this 
+         * @return \Illuminate\Bus\Dispatcher 
          * @static 
          */ 
         public static function map($map)
         {
-            return \Illuminate\Bus\Dispatcher::map($map);
+                        /** @var \Illuminate\Bus\Dispatcher $instance */
+                        return $instance->map($map);
         }
-        
-        /**
+                    /**
          * Assert if a job was dispatched based on a truth-test callback.
          *
          * @param string $command
@@ -2508,10 +2526,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertDispatched($command, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\BusFake::assertDispatched($command, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
+                        $instance->assertDispatched($command, $callback);
+        }
+                    /**
+         * Assert if a job was pushed a number of times.
+         *
+         * @param string $command
+         * @param int $times
+         * @return void 
+         * @static 
+         */ 
+        public static function assertDispatchedTimes($command, $times = 1)
+        {
+                        /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
+                        $instance->assertDispatchedTimes($command, $times);
         }
-        
-        /**
+                    /**
          * Determine if a job was dispatched based on a truth-test callback.
          *
          * @param string $command
@@ -2521,10 +2552,49 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertNotDispatched($command, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\BusFake::assertNotDispatched($command, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
+                        $instance->assertNotDispatched($command, $callback);
+        }
+                    /**
+         * Assert if a job was dispatched after the response was sent based on a truth-test callback.
+         *
+         * @param string $command
+         * @param callable|int|null $callback
+         * @return void 
+         * @static 
+         */ 
+        public static function assertDispatchedAfterResponse($command, $callback = null)
+        {
+                        /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
+                        $instance->assertDispatchedAfterResponse($command, $callback);
+        }
+                    /**
+         * Assert if a job was pushed after the response was sent a number of times.
+         *
+         * @param string $command
+         * @param int $times
+         * @return void 
+         * @static 
+         */ 
+        public static function assertDispatchedAfterResponseTimes($command, $times = 1)
+        {
+                        /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
+                        $instance->assertDispatchedAfterResponseTimes($command, $times);
+        }
+                    /**
+         * Determine if a job was dispatched based on a truth-test callback.
+         *
+         * @param string $command
+         * @param callable|null $callback
+         * @return void 
+         * @static 
+         */ 
+        public static function assertNotDispatchedAfterResponse($command, $callback = null)
+        {
+                        /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
+                        $instance->assertNotDispatchedAfterResponse($command, $callback);
         }
-        
-        /**
+                    /**
          * Get all of the jobs matching a truth-test callback.
          *
          * @param string $command
@@ -2534,10 +2604,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function dispatched($command, $callback = null)
         {
-            return \Illuminate\Support\Testing\Fakes\BusFake::dispatched($command, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
+                        return $instance->dispatched($command, $callback);
+        }
+                    /**
+         * Get all of the jobs dispatched after the response was sent matching a truth-test callback.
+         *
+         * @param string $command
+         * @param callable|null $callback
+         * @return \Illuminate\Support\Collection 
+         * @static 
+         */ 
+        public static function dispatchedAfterResponse($command, $callback = null)
+        {
+                        /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
+                        return $instance->dispatchedAfterResponse($command, $callback);
         }
-        
-        /**
+                    /**
          * Determine if there are any stored commands for a given class.
          *
          * @param string $command
@@ -2546,21 +2629,32 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasDispatched($command)
         {
-            return \Illuminate\Support\Testing\Fakes\BusFake::hasDispatched($command);
+                        /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
+                        return $instance->hasDispatched($command);
+        }
+                    /**
+         * Determine if there are any stored commands for a given class.
+         *
+         * @param string $command
+         * @return bool 
+         * @static 
+         */ 
+        public static function hasDispatchedAfterResponse($command)
+        {
+                        /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
+                        return $instance->hasDispatchedAfterResponse($command);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Cache\CacheManager
      * @see \Illuminate\Cache\Repository
      */ 
-    class Cache {
-        
-        /**
-         * Get a cache store instance by name.
+        class Cache {
+                    /**
+         * Get a cache store instance by name, wrapped in a repository.
          *
          * @param string|null $name
          * @return \Illuminate\Contracts\Cache\Repository 
@@ -2568,22 +2662,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function store($name = null)
         {
-            return \Illuminate\Cache\CacheManager::store($name);
+                        /** @var \Illuminate\Cache\CacheManager $instance */
+                        return $instance->store($name);
         }
-        
-        /**
+                    /**
          * Get a cache driver instance.
          *
          * @param string|null $driver
-         * @return mixed 
+         * @return \Illuminate\Contracts\Cache\Repository 
          * @static 
          */ 
         public static function driver($driver = null)
         {
-            return \Illuminate\Cache\CacheManager::driver($driver);
+                        /** @var \Illuminate\Cache\CacheManager $instance */
+                        return $instance->driver($driver);
         }
-        
-        /**
+                    /**
          * Create a new cache repository with the given implementation.
          *
          * @param \Illuminate\Contracts\Cache\Store $store
@@ -2592,10 +2686,21 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function repository($store)
         {
-            return \Illuminate\Cache\CacheManager::repository($store);
+                        /** @var \Illuminate\Cache\CacheManager $instance */
+                        return $instance->repository($store);
+        }
+                    /**
+         * Re-set the event dispatcher on all resolved cache repositories.
+         *
+         * @return void 
+         * @static 
+         */ 
+        public static function refreshEventDispatcher()
+        {
+                        /** @var \Illuminate\Cache\CacheManager $instance */
+                        $instance->refreshEventDispatcher();
         }
-        
-        /**
+                    /**
          * Get the default cache driver name.
          *
          * @return string 
@@ -2603,10 +2708,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDefaultDriver()
         {
-            return \Illuminate\Cache\CacheManager::getDefaultDriver();
+                        /** @var \Illuminate\Cache\CacheManager $instance */
+                        return $instance->getDefaultDriver();
         }
-        
-        /**
+                    /**
          * Set the default cache driver name.
          *
          * @param string $name
@@ -2615,23 +2720,35 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setDefaultDriver($name)
         {
-            \Illuminate\Cache\CacheManager::setDefaultDriver($name);
+                        /** @var \Illuminate\Cache\CacheManager $instance */
+                        $instance->setDefaultDriver($name);
+        }
+                    /**
+         * Unset the given driver instances.
+         *
+         * @param array|string|null $name
+         * @return \Illuminate\Cache\CacheManager 
+         * @static 
+         */ 
+        public static function forgetDriver($name = null)
+        {
+                        /** @var \Illuminate\Cache\CacheManager $instance */
+                        return $instance->forgetDriver($name);
         }
-        
-        /**
+                    /**
          * Register a custom driver creator Closure.
          *
          * @param string $driver
          * @param \Closure $callback
-         * @return $this 
+         * @return \Illuminate\Cache\CacheManager 
          * @static 
          */ 
         public static function extend($driver, $callback)
         {
-            return \Illuminate\Cache\CacheManager::extend($driver, $callback);
+                        /** @var \Illuminate\Cache\CacheManager $instance */
+                        return $instance->extend($driver, $callback);
         }
-        
-        /**
+                    /**
          * Determine if an item exists in the cache.
          *
          * @param string $key
@@ -2640,10 +2757,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function has($key)
         {
-            return \Illuminate\Cache\Repository::has($key);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->has($key);
+        }
+                    /**
+         * Determine if an item doesn't exist in the cache.
+         *
+         * @param string $key
+         * @return bool 
+         * @static 
+         */ 
+        public static function missing($key)
+        {
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->missing($key);
         }
-        
-        /**
+                    /**
          * Retrieve an item from the cache by key.
          *
          * @param string $key
@@ -2653,10 +2782,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function get($key, $default = null)
         {
-            return \Illuminate\Cache\Repository::get($key, $default);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->get($key, $default);
         }
-        
-        /**
+                    /**
          * Retrieve multiple items from the cache by key.
          * 
          * Items not found in the cache will have a null value.
@@ -2667,10 +2796,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function many($keys)
         {
-            return \Illuminate\Cache\Repository::many($keys);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->many($keys);
         }
-        
-        /**
+                    /**
          * Obtains multiple cache items by their unique keys.
          *
          * @param \Psr\SimpleCache\iterable $keys A list of keys that can obtained in a single operation.
@@ -2683,10 +2812,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getMultiple($keys, $default = null)
         {
-            return \Illuminate\Cache\Repository::getMultiple($keys, $default);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->getMultiple($keys, $default);
         }
-        
-        /**
+                    /**
          * Retrieve an item from the cache and delete it.
          *
          * @param string $key
@@ -2696,24 +2825,24 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function pull($key, $default = null)
         {
-            return \Illuminate\Cache\Repository::pull($key, $default);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->pull($key, $default);
         }
-        
-        /**
+                    /**
          * Store an item in the cache.
          *
          * @param string $key
          * @param mixed $value
-         * @param \DateTimeInterface|\DateInterval|float|int|null $minutes
-         * @return void 
+         * @param \DateTimeInterface|\DateInterval|int|null $ttl
+         * @return bool 
          * @static 
          */ 
-        public static function put($key, $value, $minutes = null)
+        public static function put($key, $value, $ttl = null)
         {
-            \Illuminate\Cache\Repository::put($key, $value, $minutes);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->put($key, $value, $ttl);
         }
-        
-        /**
+                    /**
          * Persists data in the cache, uniquely referenced by a key with an optional expiration TTL time.
          *
          * @param string $key The key of the item to store.
@@ -2728,23 +2857,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function set($key, $value, $ttl = null)
         {
-            return \Illuminate\Cache\Repository::set($key, $value, $ttl);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->set($key, $value, $ttl);
         }
-        
-        /**
-         * Store multiple items in the cache for a given number of minutes.
+                    /**
+         * Store multiple items in the cache for a given number of seconds.
          *
          * @param array $values
-         * @param \DateTimeInterface|\DateInterval|float|int $minutes
-         * @return void 
+         * @param \DateTimeInterface|\DateInterval|int|null $ttl
+         * @return bool 
          * @static 
          */ 
-        public static function putMany($values, $minutes)
+        public static function putMany($values, $ttl = null)
         {
-            \Illuminate\Cache\Repository::putMany($values, $minutes);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->putMany($values, $ttl);
         }
-        
-        /**
+                    /**
          * Persists a set of key => value pairs in the cache, with an optional TTL.
          *
          * @param \Psr\SimpleCache\iterable $values A list of key => value pairs for a multiple-set operation.
@@ -2759,24 +2888,24 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setMultiple($values, $ttl = null)
         {
-            return \Illuminate\Cache\Repository::setMultiple($values, $ttl);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->setMultiple($values, $ttl);
         }
-        
-        /**
+                    /**
          * Store an item in the cache if the key does not exist.
          *
          * @param string $key
          * @param mixed $value
-         * @param \DateTimeInterface|\DateInterval|float|int $minutes
+         * @param \DateTimeInterface|\DateInterval|int|null $ttl
          * @return bool 
          * @static 
          */ 
-        public static function add($key, $value, $minutes)
+        public static function add($key, $value, $ttl = null)
         {
-            return \Illuminate\Cache\Repository::add($key, $value, $minutes);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->add($key, $value, $ttl);
         }
-        
-        /**
+                    /**
          * Increment the value of an item in the cache.
          *
          * @param string $key
@@ -2786,10 +2915,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function increment($key, $value = 1)
         {
-            return \Illuminate\Cache\Repository::increment($key, $value);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->increment($key, $value);
         }
-        
-        /**
+                    /**
          * Decrement the value of an item in the cache.
          *
          * @param string $key
@@ -2799,38 +2928,38 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function decrement($key, $value = 1)
         {
-            return \Illuminate\Cache\Repository::decrement($key, $value);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->decrement($key, $value);
         }
-        
-        /**
+                    /**
          * Store an item in the cache indefinitely.
          *
          * @param string $key
          * @param mixed $value
-         * @return void 
+         * @return bool 
          * @static 
          */ 
         public static function forever($key, $value)
         {
-            \Illuminate\Cache\Repository::forever($key, $value);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->forever($key, $value);
         }
-        
-        /**
-         * Get an item from the cache, or store the default value.
+                    /**
+         * Get an item from the cache, or execute the given Closure and store the result.
          *
          * @param string $key
-         * @param \DateTimeInterface|\DateInterval|float|int $minutes
+         * @param \DateTimeInterface|\DateInterval|int|null $ttl
          * @param \Closure $callback
          * @return mixed 
          * @static 
          */ 
-        public static function remember($key, $minutes, $callback)
+        public static function remember($key, $ttl, $callback)
         {
-            return \Illuminate\Cache\Repository::remember($key, $minutes, $callback);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->remember($key, $ttl, $callback);
         }
-        
-        /**
-         * Get an item from the cache, or store the default value forever.
+                    /**
+         * Get an item from the cache, or execute the given Closure and store the result forever.
          *
          * @param string $key
          * @param \Closure $callback
@@ -2839,11 +2968,11 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function sear($key, $callback)
         {
-            return \Illuminate\Cache\Repository::sear($key, $callback);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->sear($key, $callback);
         }
-        
-        /**
-         * Get an item from the cache, or store the default value forever.
+                    /**
+         * Get an item from the cache, or execute the given Closure and store the result forever.
          *
          * @param string $key
          * @param \Closure $callback
@@ -2852,10 +2981,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function rememberForever($key, $callback)
         {
-            return \Illuminate\Cache\Repository::rememberForever($key, $callback);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->rememberForever($key, $callback);
         }
-        
-        /**
+                    /**
          * Remove an item from the cache.
          *
          * @param string $key
@@ -2864,10 +2993,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function forget($key)
         {
-            return \Illuminate\Cache\Repository::forget($key);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->forget($key);
         }
-        
-        /**
+                    /**
          * Delete an item from the cache by its unique key.
          *
          * @param string $key The unique cache key of the item to delete.
@@ -2878,10 +3007,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function delete($key)
         {
-            return \Illuminate\Cache\Repository::delete($key);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->delete($key);
         }
-        
-        /**
+                    /**
          * Deletes multiple cache items in a single operation.
          *
          * @param \Psr\SimpleCache\iterable $keys A list of string-based keys to be deleted.
@@ -2893,10 +3022,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function deleteMultiple($keys)
         {
-            return \Illuminate\Cache\Repository::deleteMultiple($keys);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->deleteMultiple($keys);
         }
-        
-        /**
+                    /**
          * Wipes clean the entire cache's keys.
          *
          * @return bool True on success and false on failure.
@@ -2904,10 +3033,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function clear()
         {
-            return \Illuminate\Cache\Repository::clear();
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->clear();
         }
-        
-        /**
+                    /**
          * Begin executing a new tags operation if the store supports it.
          *
          * @param array|mixed $names
@@ -2917,33 +3046,33 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function tags($names)
         {
-            return \Illuminate\Cache\Repository::tags($names);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->tags($names);
         }
-        
-        /**
+                    /**
          * Get the default cache time.
          *
-         * @return float|int 
+         * @return int|null 
          * @static 
          */ 
         public static function getDefaultCacheTime()
         {
-            return \Illuminate\Cache\Repository::getDefaultCacheTime();
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->getDefaultCacheTime();
         }
-        
-        /**
-         * Set the default cache time in minutes.
+                    /**
+         * Set the default cache time in seconds.
          *
-         * @param float|int $minutes
-         * @return $this 
+         * @param int|null $seconds
+         * @return \Illuminate\Cache\Repository 
          * @static 
          */ 
-        public static function setDefaultCacheTime($minutes)
+        public static function setDefaultCacheTime($seconds)
         {
-            return \Illuminate\Cache\Repository::setDefaultCacheTime($minutes);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->setDefaultCacheTime($seconds);
         }
-        
-        /**
+                    /**
          * Get the cache store implementation.
          *
          * @return \Illuminate\Contracts\Cache\Store 
@@ -2951,10 +3080,21 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getStore()
         {
-            return \Illuminate\Cache\Repository::getStore();
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->getStore();
+        }
+                    /**
+         * Get the event dispatcher instance.
+         *
+         * @return \Illuminate\Contracts\Events\Dispatcher 
+         * @static 
+         */ 
+        public static function getEventDispatcher()
+        {
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->getEventDispatcher();
         }
-        
-        /**
+                    /**
          * Set the event dispatcher instance.
          *
          * @param \Illuminate\Contracts\Events\Dispatcher $events
@@ -2963,10 +3103,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setEventDispatcher($events)
         {
-            \Illuminate\Cache\Repository::setEventDispatcher($events);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        $instance->setEventDispatcher($events);
         }
-        
-        /**
+                    /**
          * Determine if a cached value exists.
          *
          * @param string $key
@@ -2975,10 +3115,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function offsetExists($key)
         {
-            return \Illuminate\Cache\Repository::offsetExists($key);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->offsetExists($key);
         }
-        
-        /**
+                    /**
          * Retrieve an item from the cache by key.
          *
          * @param string $key
@@ -2987,10 +3127,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function offsetGet($key)
         {
-            return \Illuminate\Cache\Repository::offsetGet($key);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->offsetGet($key);
         }
-        
-        /**
+                    /**
          * Store an item in the cache for the default time.
          *
          * @param string $key
@@ -3000,10 +3140,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function offsetSet($key, $value)
         {
-            \Illuminate\Cache\Repository::offsetSet($key, $value);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        $instance->offsetSet($key, $value);
         }
-        
-        /**
+                    /**
          * Remove an item from the cache.
          *
          * @param string $key
@@ -3012,10 +3152,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function offsetUnset($key)
         {
-            \Illuminate\Cache\Repository::offsetUnset($key);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        $instance->offsetUnset($key);
         }
-        
-        /**
+                    /**
          * Register a custom macro.
          *
          * @param string $name
@@ -3025,23 +3165,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function macro($name, $macro)
         {
-            \Illuminate\Cache\Repository::macro($name, $macro);
+                        \Illuminate\Cache\Repository::macro($name, $macro);
         }
-        
-        /**
+                    /**
          * Mix another object into the class.
          *
          * @param object $mixin
+         * @param bool $replace
          * @return void 
          * @throws \ReflectionException
          * @static 
          */ 
-        public static function mixin($mixin)
+        public static function mixin($mixin, $replace = true)
         {
-            \Illuminate\Cache\Repository::mixin($mixin);
+                        \Illuminate\Cache\Repository::mixin($mixin, $replace);
         }
-        
-        /**
+                    /**
          * Checks if macro is registered.
          *
          * @param string $name
@@ -3050,10 +3189,9 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasMacro($name)
         {
-            return \Illuminate\Cache\Repository::hasMacro($name);
+                        return \Illuminate\Cache\Repository::hasMacro($name);
         }
-        
-        /**
+                    /**
          * Dynamically handle calls to the class.
          *
          * @param string $method
@@ -3064,10 +3202,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function macroCall($method, $parameters)
         {
-            return \Illuminate\Cache\Repository::macroCall($method, $parameters);
+                        /** @var \Illuminate\Cache\Repository $instance */
+                        return $instance->macroCall($method, $parameters);
         }
-        
-        /**
+                    /**
          * Remove all items from the cache.
          *
          * @return bool 
@@ -3075,10 +3213,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flush()
         {
-            return \Illuminate\Cache\FileStore::flush();
+                        /** @var \Illuminate\Cache\FileStore $instance */
+                        return $instance->flush();
         }
-        
-        /**
+                    /**
          * Get the Filesystem instance.
          *
          * @return \Illuminate\Filesystem\Filesystem 
@@ -3086,10 +3224,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getFilesystem()
         {
-            return \Illuminate\Cache\FileStore::getFilesystem();
+                        /** @var \Illuminate\Cache\FileStore $instance */
+                        return $instance->getFilesystem();
         }
-        
-        /**
+                    /**
          * Get the working directory of the cache.
          *
          * @return string 
@@ -3097,10 +3235,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDirectory()
         {
-            return \Illuminate\Cache\FileStore::getDirectory();
+                        /** @var \Illuminate\Cache\FileStore $instance */
+                        return $instance->getDirectory();
         }
-        
-        /**
+                    /**
          * Get the cache key prefix.
          *
          * @return string 
@@ -3108,19 +3246,18 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getPrefix()
         {
-            return \Illuminate\Cache\FileStore::getPrefix();
+                        /** @var \Illuminate\Cache\FileStore $instance */
+                        return $instance->getPrefix();
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Config\Repository
      */ 
-    class Config {
-        
-        /**
+        class Config {
+                    /**
          * Determine if the given configuration value exists.
          *
          * @param string $key
@@ -3129,10 +3266,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function has($key)
         {
-            return \Illuminate\Config\Repository::has($key);
+                        /** @var \Illuminate\Config\Repository $instance */
+                        return $instance->has($key);
         }
-        
-        /**
+                    /**
          * Get the specified configuration value.
          *
          * @param array|string $key
@@ -3142,10 +3279,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function get($key, $default = null)
         {
-            return \Illuminate\Config\Repository::get($key, $default);
+                        /** @var \Illuminate\Config\Repository $instance */
+                        return $instance->get($key, $default);
         }
-        
-        /**
+                    /**
          * Get many configuration values.
          *
          * @param array $keys
@@ -3154,10 +3291,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getMany($keys)
         {
-            return \Illuminate\Config\Repository::getMany($keys);
+                        /** @var \Illuminate\Config\Repository $instance */
+                        return $instance->getMany($keys);
         }
-        
-        /**
+                    /**
          * Set a given configuration value.
          *
          * @param array|string $key
@@ -3167,10 +3304,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function set($key, $value = null)
         {
-            \Illuminate\Config\Repository::set($key, $value);
+                        /** @var \Illuminate\Config\Repository $instance */
+                        $instance->set($key, $value);
         }
-        
-        /**
+                    /**
          * Prepend a value onto an array configuration value.
          *
          * @param string $key
@@ -3180,10 +3317,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function prepend($key, $value)
         {
-            \Illuminate\Config\Repository::prepend($key, $value);
+                        /** @var \Illuminate\Config\Repository $instance */
+                        $instance->prepend($key, $value);
         }
-        
-        /**
+                    /**
          * Push a value onto an array configuration value.
          *
          * @param string $key
@@ -3193,10 +3330,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function push($key, $value)
         {
-            \Illuminate\Config\Repository::push($key, $value);
+                        /** @var \Illuminate\Config\Repository $instance */
+                        $instance->push($key, $value);
         }
-        
-        /**
+                    /**
          * Get all of the configuration items for the application.
          *
          * @return array 
@@ -3204,10 +3341,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function all()
         {
-            return \Illuminate\Config\Repository::all();
+                        /** @var \Illuminate\Config\Repository $instance */
+                        return $instance->all();
         }
-        
-        /**
+                    /**
          * Determine if the given configuration option exists.
          *
          * @param string $key
@@ -3216,10 +3353,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function offsetExists($key)
         {
-            return \Illuminate\Config\Repository::offsetExists($key);
+                        /** @var \Illuminate\Config\Repository $instance */
+                        return $instance->offsetExists($key);
         }
-        
-        /**
+                    /**
          * Get a configuration option.
          *
          * @param string $key
@@ -3228,10 +3365,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function offsetGet($key)
         {
-            return \Illuminate\Config\Repository::offsetGet($key);
+                        /** @var \Illuminate\Config\Repository $instance */
+                        return $instance->offsetGet($key);
         }
-        
-        /**
+                    /**
          * Set a configuration option.
          *
          * @param string $key
@@ -3241,10 +3378,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function offsetSet($key, $value)
         {
-            \Illuminate\Config\Repository::offsetSet($key, $value);
+                        /** @var \Illuminate\Config\Repository $instance */
+                        $instance->offsetSet($key, $value);
         }
-        
-        /**
+                    /**
          * Unset a configuration option.
          *
          * @param string $key
@@ -3253,26 +3390,25 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function offsetUnset($key)
         {
-            \Illuminate\Config\Repository::offsetUnset($key);
+                        /** @var \Illuminate\Config\Repository $instance */
+                        $instance->offsetUnset($key);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Cookie\CookieJar
      */ 
-    class Cookie {
-        
-        /**
+        class Cookie {
+                    /**
          * Create a new cookie instance.
          *
          * @param string $name
          * @param string $value
          * @param int $minutes
-         * @param string $path
-         * @param string $domain
+         * @param string|null $path
+         * @param string|null $domain
          * @param bool|null $secure
          * @param bool $httpOnly
          * @param bool $raw
@@ -3282,16 +3418,16 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function make($name, $value, $minutes = 0, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null)
         {
-            return \Illuminate\Cookie\CookieJar::make($name, $value, $minutes, $path, $domain, $secure, $httpOnly, $raw, $sameSite);
+                        /** @var \Illuminate\Cookie\CookieJar $instance */
+                        return $instance->make($name, $value, $minutes, $path, $domain, $secure, $httpOnly, $raw, $sameSite);
         }
-        
-        /**
+                    /**
          * Create a cookie that lasts "forever" (five years).
          *
          * @param string $name
          * @param string $value
-         * @param string $path
-         * @param string $domain
+         * @param string|null $path
+         * @param string|null $domain
          * @param bool|null $secure
          * @param bool $httpOnly
          * @param bool $raw
@@ -3301,88 +3437,91 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function forever($name, $value, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null)
         {
-            return \Illuminate\Cookie\CookieJar::forever($name, $value, $path, $domain, $secure, $httpOnly, $raw, $sameSite);
+                        /** @var \Illuminate\Cookie\CookieJar $instance */
+                        return $instance->forever($name, $value, $path, $domain, $secure, $httpOnly, $raw, $sameSite);
         }
-        
-        /**
+                    /**
          * Expire the given cookie.
          *
          * @param string $name
-         * @param string $path
-         * @param string $domain
+         * @param string|null $path
+         * @param string|null $domain
          * @return \Symfony\Component\HttpFoundation\Cookie 
          * @static 
          */ 
         public static function forget($name, $path = null, $domain = null)
         {
-            return \Illuminate\Cookie\CookieJar::forget($name, $path, $domain);
+                        /** @var \Illuminate\Cookie\CookieJar $instance */
+                        return $instance->forget($name, $path, $domain);
         }
-        
-        /**
+                    /**
          * Determine if a cookie has been queued.
          *
          * @param string $key
+         * @param string|null $path
          * @return bool 
          * @static 
          */ 
-        public static function hasQueued($key)
+        public static function hasQueued($key, $path = null)
         {
-            return \Illuminate\Cookie\CookieJar::hasQueued($key);
+                        /** @var \Illuminate\Cookie\CookieJar $instance */
+                        return $instance->hasQueued($key, $path);
         }
-        
-        /**
+                    /**
          * Get a queued cookie instance.
          *
          * @param string $key
          * @param mixed $default
+         * @param string|null $path
          * @return \Symfony\Component\HttpFoundation\Cookie 
          * @static 
          */ 
-        public static function queued($key, $default = null)
+        public static function queued($key, $default = null, $path = null)
         {
-            return \Illuminate\Cookie\CookieJar::queued($key, $default);
+                        /** @var \Illuminate\Cookie\CookieJar $instance */
+                        return $instance->queued($key, $default, $path);
         }
-        
-        /**
+                    /**
          * Queue a cookie to send with the next response.
          *
          * @param array $parameters
          * @return void 
          * @static 
          */ 
-        public static function queue($parameters = null)
+        public static function queue(...$parameters)
         {
-            \Illuminate\Cookie\CookieJar::queue($parameters);
+                        /** @var \Illuminate\Cookie\CookieJar $instance */
+                        $instance->queue(...$parameters);
         }
-        
-        /**
+                    /**
          * Remove a cookie from the queue.
          *
          * @param string $name
+         * @param string|null $path
          * @return void 
          * @static 
          */ 
-        public static function unqueue($name)
+        public static function unqueue($name, $path = null)
         {
-            \Illuminate\Cookie\CookieJar::unqueue($name);
+                        /** @var \Illuminate\Cookie\CookieJar $instance */
+                        $instance->unqueue($name, $path);
         }
-        
-        /**
+                    /**
          * Set the default path and domain for the jar.
          *
          * @param string $path
          * @param string $domain
          * @param bool $secure
-         * @param string $sameSite
-         * @return $this 
+         * @param string|null $sameSite
+         * @return \Illuminate\Cookie\CookieJar 
          * @static 
          */ 
         public static function setDefaultPathAndDomain($path, $domain, $secure = false, $sameSite = null)
         {
-            return \Illuminate\Cookie\CookieJar::setDefaultPathAndDomain($path, $domain, $secure, $sameSite);
+                        /** @var \Illuminate\Cookie\CookieJar $instance */
+                        return $instance->setDefaultPathAndDomain($path, $domain, $secure, $sameSite);
         }
-        
-        /**
+                    /**
          * Get the cookies which have been queued for the next request.
          *
          * @return \Symfony\Component\HttpFoundation\Cookie[] 
@@ -3390,32 +3529,66 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getQueuedCookies()
         {
-            return \Illuminate\Cookie\CookieJar::getQueuedCookies();
+                        /** @var \Illuminate\Cookie\CookieJar $instance */
+                        return $instance->getQueuedCookies();
         }
-         
-    }
-
-    /**
-     * 
-     *
-     * @see \Illuminate\Encryption\Encrypter
-     */ 
-    class Crypt {
-        
-        /**
-         * Determine if the given key and cipher combination is valid.
+                    /**
+         * Register a custom macro.
          *
-         * @param string $key
-         * @param string $cipher
-         * @return bool 
+         * @param string $name
+         * @param object|callable $macro
+         * @return void 
+         * @static 
+         */ 
+        public static function macro($name, $macro)
+        {
+                        \Illuminate\Cookie\CookieJar::macro($name, $macro);
+        }
+                    /**
+         * Mix another object into the class.
+         *
+         * @param object $mixin
+         * @param bool $replace
+         * @return void 
+         * @throws \ReflectionException
+         * @static 
+         */ 
+        public static function mixin($mixin, $replace = true)
+        {
+                        \Illuminate\Cookie\CookieJar::mixin($mixin, $replace);
+        }
+                    /**
+         * Checks if macro is registered.
+         *
+         * @param string $name
+         * @return bool 
+         * @static 
+         */ 
+        public static function hasMacro($name)
+        {
+                        return \Illuminate\Cookie\CookieJar::hasMacro($name);
+        }
+         
+    }
+            /**
+     * 
+     *
+     * @see \Illuminate\Encryption\Encrypter
+     */ 
+        class Crypt {
+                    /**
+         * Determine if the given key and cipher combination is valid.
+         *
+         * @param string $key
+         * @param string $cipher
+         * @return bool 
          * @static 
          */ 
         public static function supported($key, $cipher)
         {
-            return \Illuminate\Encryption\Encrypter::supported($key, $cipher);
+                        return \Illuminate\Encryption\Encrypter::supported($key, $cipher);
         }
-        
-        /**
+                    /**
          * Create a new encryption key for the given cipher.
          *
          * @param string $cipher
@@ -3424,10 +3597,9 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function generateKey($cipher)
         {
-            return \Illuminate\Encryption\Encrypter::generateKey($cipher);
+                        return \Illuminate\Encryption\Encrypter::generateKey($cipher);
         }
-        
-        /**
+                    /**
          * Encrypt the given value.
          *
          * @param mixed $value
@@ -3438,25 +3610,26 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function encrypt($value, $serialize = true)
         {
-            return \Illuminate\Encryption\Encrypter::encrypt($value, $serialize);
+                        /** @var \Illuminate\Encryption\Encrypter $instance */
+                        return $instance->encrypt($value, $serialize);
         }
-        
-        /**
+                    /**
          * Encrypt a string without serialization.
          *
          * @param string $value
          * @return string 
+         * @throws \Illuminate\Contracts\Encryption\EncryptException
          * @static 
          */ 
         public static function encryptString($value)
         {
-            return \Illuminate\Encryption\Encrypter::encryptString($value);
+                        /** @var \Illuminate\Encryption\Encrypter $instance */
+                        return $instance->encryptString($value);
         }
-        
-        /**
+                    /**
          * Decrypt the given value.
          *
-         * @param mixed $payload
+         * @param string $payload
          * @param bool $unserialize
          * @return mixed 
          * @throws \Illuminate\Contracts\Encryption\DecryptException
@@ -3464,22 +3637,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function decrypt($payload, $unserialize = true)
         {
-            return \Illuminate\Encryption\Encrypter::decrypt($payload, $unserialize);
+                        /** @var \Illuminate\Encryption\Encrypter $instance */
+                        return $instance->decrypt($payload, $unserialize);
         }
-        
-        /**
+                    /**
          * Decrypt the given string without unserialization.
          *
          * @param string $payload
          * @return string 
+         * @throws \Illuminate\Contracts\Encryption\DecryptException
          * @static 
          */ 
         public static function decryptString($payload)
         {
-            return \Illuminate\Encryption\Encrypter::decryptString($payload);
+                        /** @var \Illuminate\Encryption\Encrypter $instance */
+                        return $instance->decryptString($payload);
         }
-        
-        /**
+                    /**
          * Get the encryption key.
          *
          * @return string 
@@ -3487,68 +3661,67 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getKey()
         {
-            return \Illuminate\Encryption\Encrypter::getKey();
+                        /** @var \Illuminate\Encryption\Encrypter $instance */
+                        return $instance->getKey();
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Database\DatabaseManager
      * @see \Illuminate\Database\Connection
      */ 
-    class DB {
-        
-        /**
+        class DB {
+                    /**
          * Get a database connection instance.
          *
-         * @param string $name
+         * @param string|null $name
          * @return \Illuminate\Database\Connection 
          * @static 
          */ 
         public static function connection($name = null)
         {
-            return \Illuminate\Database\DatabaseManager::connection($name);
+                        /** @var \Illuminate\Database\DatabaseManager $instance */
+                        return $instance->connection($name);
         }
-        
-        /**
+                    /**
          * Disconnect from the given database and remove from local cache.
          *
-         * @param string $name
+         * @param string|null $name
          * @return void 
          * @static 
          */ 
         public static function purge($name = null)
         {
-            \Illuminate\Database\DatabaseManager::purge($name);
+                        /** @var \Illuminate\Database\DatabaseManager $instance */
+                        $instance->purge($name);
         }
-        
-        /**
+                    /**
          * Disconnect from the given database.
          *
-         * @param string $name
+         * @param string|null $name
          * @return void 
          * @static 
          */ 
         public static function disconnect($name = null)
         {
-            \Illuminate\Database\DatabaseManager::disconnect($name);
+                        /** @var \Illuminate\Database\DatabaseManager $instance */
+                        $instance->disconnect($name);
         }
-        
-        /**
+                    /**
          * Reconnect to the given database.
          *
-         * @param string $name
+         * @param string|null $name
          * @return \Illuminate\Database\Connection 
          * @static 
          */ 
         public static function reconnect($name = null)
         {
-            return \Illuminate\Database\DatabaseManager::reconnect($name);
+                        /** @var \Illuminate\Database\DatabaseManager $instance */
+                        return $instance->reconnect($name);
         }
-        
-        /**
+                    /**
          * Get the default connection name.
          *
          * @return string 
@@ -3556,10 +3729,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDefaultConnection()
         {
-            return \Illuminate\Database\DatabaseManager::getDefaultConnection();
+                        /** @var \Illuminate\Database\DatabaseManager $instance */
+                        return $instance->getDefaultConnection();
         }
-        
-        /**
+                    /**
          * Set the default connection name.
          *
          * @param string $name
@@ -3568,10 +3741,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setDefaultConnection($name)
         {
-            \Illuminate\Database\DatabaseManager::setDefaultConnection($name);
+                        /** @var \Illuminate\Database\DatabaseManager $instance */
+                        $instance->setDefaultConnection($name);
         }
-        
-        /**
+                    /**
          * Get all of the support drivers.
          *
          * @return array 
@@ -3579,10 +3752,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function supportedDrivers()
         {
-            return \Illuminate\Database\DatabaseManager::supportedDrivers();
+                        /** @var \Illuminate\Database\DatabaseManager $instance */
+                        return $instance->supportedDrivers();
         }
-        
-        /**
+                    /**
          * Get all of the drivers that are actually available.
          *
          * @return array 
@@ -3590,10 +3763,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function availableDrivers()
         {
-            return \Illuminate\Database\DatabaseManager::availableDrivers();
+                        /** @var \Illuminate\Database\DatabaseManager $instance */
+                        return $instance->availableDrivers();
         }
-        
-        /**
+                    /**
          * Register an extension connection resolver.
          *
          * @param string $name
@@ -3603,10 +3776,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function extend($name, $resolver)
         {
-            \Illuminate\Database\DatabaseManager::extend($name, $resolver);
+                        /** @var \Illuminate\Database\DatabaseManager $instance */
+                        $instance->extend($name, $resolver);
         }
-        
-        /**
+                    /**
          * Return all of the created connections.
          *
          * @return array 
@@ -3614,10 +3787,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getConnections()
         {
-            return \Illuminate\Database\DatabaseManager::getConnections();
+                        /** @var \Illuminate\Database\DatabaseManager $instance */
+                        return $instance->getConnections();
+        }
+                    /**
+         * Set the database reconnector callback.
+         *
+         * @param callable $reconnector
+         * @return void 
+         * @static 
+         */ 
+        public static function setReconnector($reconnector)
+        {
+                        /** @var \Illuminate\Database\DatabaseManager $instance */
+                        $instance->setReconnector($reconnector);
         }
-        
-        /**
+                    /**
          * Get a schema builder instance for the connection.
          *
          * @return \Illuminate\Database\Schema\SQLiteBuilder 
@@ -3625,71 +3810,67 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getSchemaBuilder()
         {
-            return \Illuminate\Database\SQLiteConnection::getSchemaBuilder();
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getSchemaBuilder();
         }
-        
-        /**
+                    /**
          * Set the query grammar to the default implementation.
          *
          * @return void 
          * @static 
          */ 
         public static function useDefaultQueryGrammar()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::useDefaultQueryGrammar();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->useDefaultQueryGrammar();
         }
-        
-        /**
+                    /**
          * Set the schema grammar to the default implementation.
          *
          * @return void 
          * @static 
          */ 
         public static function useDefaultSchemaGrammar()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::useDefaultSchemaGrammar();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->useDefaultSchemaGrammar();
         }
-        
-        /**
+                    /**
          * Set the query post processor to the default implementation.
          *
          * @return void 
          * @static 
          */ 
         public static function useDefaultPostProcessor()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::useDefaultPostProcessor();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->useDefaultPostProcessor();
         }
-        
-        /**
+                    /**
          * Begin a fluent query against a database table.
          *
-         * @param string $table
+         * @param \Closure|\Illuminate\Database\Query\Builder|string $table
+         * @param string|null $as
          * @return \Illuminate\Database\Query\Builder 
          * @static 
          */ 
-        public static function table($table)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::table($table);
+        public static function table($table, $as = null)
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->table($table, $as);
         }
-        
-        /**
+                    /**
          * Get a new query builder instance.
          *
          * @return \Illuminate\Database\Query\Builder 
          * @static 
          */ 
         public static function query()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::query();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->query();
         }
-        
-        /**
+                    /**
          * Run a select statement and return a single result.
          *
          * @param string $query
@@ -3698,13 +3879,12 @@ namespace Illuminate\Support\Facades {
          * @return mixed 
          * @static 
          */ 
-        public static function selectOne($query, $bindings = array(), $useReadPdo = true)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::selectOne($query, $bindings, $useReadPdo);
+        public static function selectOne($query, $bindings = [], $useReadPdo = true)
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->selectOne($query, $bindings, $useReadPdo);
         }
-        
-        /**
+                    /**
          * Run a select statement against the database.
          *
          * @param string $query
@@ -3712,13 +3892,12 @@ namespace Illuminate\Support\Facades {
          * @return array 
          * @static 
          */ 
-        public static function selectFromWriteConnection($query, $bindings = array())
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::selectFromWriteConnection($query, $bindings);
+        public static function selectFromWriteConnection($query, $bindings = [])
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->selectFromWriteConnection($query, $bindings);
         }
-        
-        /**
+                    /**
          * Run a select statement against the database.
          *
          * @param string $query
@@ -3727,13 +3906,12 @@ namespace Illuminate\Support\Facades {
          * @return array 
          * @static 
          */ 
-        public static function select($query, $bindings = array(), $useReadPdo = true)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::select($query, $bindings, $useReadPdo);
+        public static function select($query, $bindings = [], $useReadPdo = true)
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->select($query, $bindings, $useReadPdo);
         }
-        
-        /**
+                    /**
          * Run a select statement against the database and returns a generator.
          *
          * @param string $query
@@ -3742,13 +3920,12 @@ namespace Illuminate\Support\Facades {
          * @return \Generator 
          * @static 
          */ 
-        public static function cursor($query, $bindings = array(), $useReadPdo = true)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::cursor($query, $bindings, $useReadPdo);
+        public static function cursor($query, $bindings = [], $useReadPdo = true)
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->cursor($query, $bindings, $useReadPdo);
         }
-        
-        /**
+                    /**
          * Run an insert statement against the database.
          *
          * @param string $query
@@ -3756,13 +3933,12 @@ namespace Illuminate\Support\Facades {
          * @return bool 
          * @static 
          */ 
-        public static function insert($query, $bindings = array())
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::insert($query, $bindings);
+        public static function insert($query, $bindings = [])
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->insert($query, $bindings);
         }
-        
-        /**
+                    /**
          * Run an update statement against the database.
          *
          * @param string $query
@@ -3770,13 +3946,12 @@ namespace Illuminate\Support\Facades {
          * @return int 
          * @static 
          */ 
-        public static function update($query, $bindings = array())
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::update($query, $bindings);
+        public static function update($query, $bindings = [])
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->update($query, $bindings);
         }
-        
-        /**
+                    /**
          * Run a delete statement against the database.
          *
          * @param string $query
@@ -3784,13 +3959,12 @@ namespace Illuminate\Support\Facades {
          * @return int 
          * @static 
          */ 
-        public static function delete($query, $bindings = array())
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::delete($query, $bindings);
+        public static function delete($query, $bindings = [])
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->delete($query, $bindings);
         }
-        
-        /**
+                    /**
          * Execute an SQL statement and return the boolean result.
          *
          * @param string $query
@@ -3798,13 +3972,12 @@ namespace Illuminate\Support\Facades {
          * @return bool 
          * @static 
          */ 
-        public static function statement($query, $bindings = array())
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::statement($query, $bindings);
+        public static function statement($query, $bindings = [])
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->statement($query, $bindings);
         }
-        
-        /**
+                    /**
          * Run an SQL statement and get the number of rows affected.
          *
          * @param string $query
@@ -3812,13 +3985,12 @@ namespace Illuminate\Support\Facades {
          * @return int 
          * @static 
          */ 
-        public static function affectingStatement($query, $bindings = array())
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::affectingStatement($query, $bindings);
+        public static function affectingStatement($query, $bindings = [])
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->affectingStatement($query, $bindings);
         }
-        
-        /**
+                    /**
          * Run a raw, unprepared query against the PDO connection.
          *
          * @param string $query
@@ -3826,12 +3998,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function unprepared($query)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::unprepared($query);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->unprepared($query);
         }
-        
-        /**
+                    /**
          * Execute the given callback in "dry run" mode.
          *
          * @param \Closure $callback
@@ -3839,12 +4010,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function pretend($callback)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::pretend($callback);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->pretend($callback);
         }
-        
-        /**
+                    /**
          * Bind values to their parameters in the given statement.
          *
          * @param \PDOStatement $statement
@@ -3853,12 +4023,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function bindValues($statement, $bindings)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::bindValues($statement, $bindings);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->bindValues($statement, $bindings);
         }
-        
-        /**
+                    /**
          * Prepare the query bindings for execution.
          *
          * @param array $bindings
@@ -3866,12 +4035,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function prepareBindings($bindings)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::prepareBindings($bindings);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->prepareBindings($bindings);
         }
-        
-        /**
+                    /**
          * Log a query in the connection's query log.
          *
          * @param string $query
@@ -3881,12 +4049,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function logQuery($query, $bindings, $time = null)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::logQuery($query, $bindings, $time);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->logQuery($query, $bindings, $time);
         }
-        
-        /**
+                    /**
          * Register a database query listener with the connection.
          *
          * @param \Closure $callback
@@ -3894,12 +4061,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function listen($callback)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::listen($callback);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->listen($callback);
         }
-        
-        /**
+                    /**
          * Get a new raw query expression.
          *
          * @param mixed $value
@@ -3907,12 +4073,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function raw($value)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::raw($value);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->raw($value);
         }
-        
-        /**
+                    /**
          * Indicate if any records have been modified.
          *
          * @param bool $value
@@ -3920,24 +4085,22 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function recordsHaveBeenModified($value = true)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::recordsHaveBeenModified($value);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->recordsHaveBeenModified($value);
         }
-        
-        /**
+                    /**
          * Is Doctrine available?
          *
          * @return bool 
          * @static 
          */ 
         public static function isDoctrineAvailable()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::isDoctrineAvailable();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->isDoctrineAvailable();
         }
-        
-        /**
+                    /**
          * Get a Doctrine Schema Column instance.
          *
          * @param string $table
@@ -3946,111 +4109,112 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getDoctrineColumn($table, $column)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getDoctrineColumn($table, $column);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getDoctrineColumn($table, $column);
         }
-        
-        /**
+                    /**
          * Get the Doctrine DBAL schema manager for the connection.
          *
          * @return \Doctrine\DBAL\Schema\AbstractSchemaManager 
          * @static 
          */ 
         public static function getDoctrineSchemaManager()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getDoctrineSchemaManager();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getDoctrineSchemaManager();
         }
-        
-        /**
+                    /**
          * Get the Doctrine DBAL database connection instance.
          *
          * @return \Doctrine\DBAL\Connection 
          * @static 
          */ 
         public static function getDoctrineConnection()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getDoctrineConnection();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getDoctrineConnection();
         }
-        
-        /**
+                    /**
          * Get the current PDO connection.
          *
          * @return \PDO 
          * @static 
          */ 
         public static function getPdo()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getPdo();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getPdo();
         }
-        
-        /**
+                    /**
+         * Get the current PDO connection parameter without executing any reconnect logic.
+         *
+         * @return \PDO|\Closure|null 
+         * @static 
+         */ 
+        public static function getRawPdo()
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getRawPdo();
+        }
+                    /**
          * Get the current PDO connection used for reading.
          *
          * @return \PDO 
          * @static 
          */ 
         public static function getReadPdo()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getReadPdo();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getReadPdo();
+        }
+                    /**
+         * Get the current read PDO connection parameter without executing any reconnect logic.
+         *
+         * @return \PDO|\Closure|null 
+         * @static 
+         */ 
+        public static function getRawReadPdo()
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getRawReadPdo();
         }
-        
-        /**
+                    /**
          * Set the PDO connection.
          *
          * @param \PDO|\Closure|null $pdo
-         * @return $this 
+         * @return \Illuminate\Database\SQLiteConnection 
          * @static 
          */ 
         public static function setPdo($pdo)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::setPdo($pdo);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->setPdo($pdo);
         }
-        
-        /**
+                    /**
          * Set the PDO connection used for reading.
          *
          * @param \PDO|\Closure|null $pdo
-         * @return $this 
+         * @return \Illuminate\Database\SQLiteConnection 
          * @static 
          */ 
         public static function setReadPdo($pdo)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::setReadPdo($pdo);
-        }
-        
-        /**
-         * Set the reconnect instance on the connection.
-         *
-         * @param callable $reconnector
-         * @return $this 
-         * @static 
-         */ 
-        public static function setReconnector($reconnector)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::setReconnector($reconnector);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->setReadPdo($pdo);
         }
-        
-        /**
+                    /**
          * Get the database connection name.
          *
          * @return string|null 
          * @static 
          */ 
         public static function getName()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getName();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getName();
         }
-        
-        /**
+                    /**
          * Get an option from the configuration options.
          *
          * @param string|null $option
@@ -4058,258 +4222,237 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getConfig($option = null)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getConfig($option);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getConfig($option);
         }
-        
-        /**
+                    /**
          * Get the PDO driver name.
          *
          * @return string 
          * @static 
          */ 
         public static function getDriverName()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getDriverName();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getDriverName();
         }
-        
-        /**
+                    /**
          * Get the query grammar used by the connection.
          *
          * @return \Illuminate\Database\Query\Grammars\Grammar 
          * @static 
          */ 
         public static function getQueryGrammar()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getQueryGrammar();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getQueryGrammar();
         }
-        
-        /**
+                    /**
          * Set the query grammar used by the connection.
          *
          * @param \Illuminate\Database\Query\Grammars\Grammar $grammar
-         * @return void 
+         * @return \Illuminate\Database\SQLiteConnection 
          * @static 
          */ 
         public static function setQueryGrammar($grammar)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::setQueryGrammar($grammar);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->setQueryGrammar($grammar);
         }
-        
-        /**
+                    /**
          * Get the schema grammar used by the connection.
          *
          * @return \Illuminate\Database\Schema\Grammars\Grammar 
          * @static 
          */ 
         public static function getSchemaGrammar()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getSchemaGrammar();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getSchemaGrammar();
         }
-        
-        /**
+                    /**
          * Set the schema grammar used by the connection.
          *
          * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar
-         * @return void 
+         * @return \Illuminate\Database\SQLiteConnection 
          * @static 
          */ 
         public static function setSchemaGrammar($grammar)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::setSchemaGrammar($grammar);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->setSchemaGrammar($grammar);
         }
-        
-        /**
+                    /**
          * Get the query post processor used by the connection.
          *
          * @return \Illuminate\Database\Query\Processors\Processor 
          * @static 
          */ 
         public static function getPostProcessor()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getPostProcessor();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getPostProcessor();
         }
-        
-        /**
+                    /**
          * Set the query post processor used by the connection.
          *
          * @param \Illuminate\Database\Query\Processors\Processor $processor
-         * @return void 
+         * @return \Illuminate\Database\SQLiteConnection 
          * @static 
          */ 
         public static function setPostProcessor($processor)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::setPostProcessor($processor);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->setPostProcessor($processor);
         }
-        
-        /**
+                    /**
          * Get the event dispatcher used by the connection.
          *
          * @return \Illuminate\Contracts\Events\Dispatcher 
          * @static 
          */ 
         public static function getEventDispatcher()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getEventDispatcher();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getEventDispatcher();
         }
-        
-        /**
+                    /**
          * Set the event dispatcher instance on the connection.
          *
          * @param \Illuminate\Contracts\Events\Dispatcher $events
-         * @return void 
+         * @return \Illuminate\Database\SQLiteConnection 
          * @static 
          */ 
         public static function setEventDispatcher($events)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::setEventDispatcher($events);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->setEventDispatcher($events);
         }
-        
-        /**
+                    /**
          * Unset the event dispatcher for this connection.
          *
          * @return void 
          * @static 
          */ 
         public static function unsetEventDispatcher()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::unsetEventDispatcher();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->unsetEventDispatcher();
         }
-        
-        /**
-         * Determine if the connection in a "dry run".
+                    /**
+         * Determine if the connection is in a "dry run".
          *
          * @return bool 
          * @static 
          */ 
         public static function pretending()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::pretending();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->pretending();
         }
-        
-        /**
+                    /**
          * Get the connection query log.
          *
          * @return array 
          * @static 
          */ 
         public static function getQueryLog()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getQueryLog();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getQueryLog();
         }
-        
-        /**
+                    /**
          * Clear the query log.
          *
          * @return void 
          * @static 
          */ 
         public static function flushQueryLog()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::flushQueryLog();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->flushQueryLog();
         }
-        
-        /**
+                    /**
          * Enable the query log on the connection.
          *
          * @return void 
          * @static 
          */ 
         public static function enableQueryLog()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::enableQueryLog();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->enableQueryLog();
         }
-        
-        /**
+                    /**
          * Disable the query log on the connection.
          *
          * @return void 
          * @static 
          */ 
         public static function disableQueryLog()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::disableQueryLog();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->disableQueryLog();
         }
-        
-        /**
+                    /**
          * Determine whether we're logging queries.
          *
          * @return bool 
          * @static 
          */ 
         public static function logging()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::logging();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->logging();
         }
-        
-        /**
+                    /**
          * Get the name of the connected database.
          *
          * @return string 
          * @static 
          */ 
         public static function getDatabaseName()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getDatabaseName();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getDatabaseName();
         }
-        
-        /**
+                    /**
          * Set the name of the connected database.
          *
          * @param string $database
-         * @return string 
+         * @return \Illuminate\Database\SQLiteConnection 
          * @static 
          */ 
         public static function setDatabaseName($database)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::setDatabaseName($database);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->setDatabaseName($database);
         }
-        
-        /**
+                    /**
          * Get the table prefix for the connection.
          *
          * @return string 
          * @static 
          */ 
         public static function getTablePrefix()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getTablePrefix();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->getTablePrefix();
         }
-        
-        /**
+                    /**
          * Set the table prefix in use by the connection.
          *
          * @param string $prefix
-         * @return void 
+         * @return \Illuminate\Database\SQLiteConnection 
          * @static 
          */ 
         public static function setTablePrefix($prefix)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::setTablePrefix($prefix);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->setTablePrefix($prefix);
         }
-        
-        /**
+                    /**
          * Set the table prefix and return the grammar.
          *
          * @param \Illuminate\Database\Grammar $grammar
@@ -4317,12 +4460,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function withTablePrefix($grammar)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::withTablePrefix($grammar);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->withTablePrefix($grammar);
         }
-        
-        /**
+                    /**
          * Register a connection resolver.
          *
          * @param string $driver
@@ -4331,12 +4473,10 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function resolverFor($driver, $callback)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::resolverFor($driver, $callback);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        \Illuminate\Database\SQLiteConnection::resolverFor($driver, $callback);
         }
-        
-        /**
+                    /**
          * Get the connection resolver for the given driver.
          *
          * @param string $driver
@@ -4344,12 +4484,10 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getResolver($driver)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::getResolver($driver);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        return \Illuminate\Database\SQLiteConnection::getResolver($driver);
         }
-        
-        /**
+                    /**
          * Execute a Closure within a transaction.
          *
          * @param \Closure $callback
@@ -4359,12 +4497,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function transaction($callback, $attempts = 1)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::transaction($callback, $attempts);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->transaction($callback, $attempts);
         }
-        
-        /**
+                    /**
          * Start a new database transaction.
          *
          * @return void 
@@ -4372,71 +4509,67 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function beginTransaction()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::beginTransaction();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->beginTransaction();
         }
-        
-        /**
+                    /**
          * Commit the active database transaction.
          *
          * @return void 
          * @static 
          */ 
         public static function commit()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::commit();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->commit();
         }
-        
-        /**
+                    /**
          * Rollback the active database transaction.
          *
          * @param int|null $toLevel
          * @return void 
+         * @throws \Exception
          * @static 
          */ 
         public static function rollBack($toLevel = null)
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\SQLiteConnection::rollBack($toLevel);
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        $instance->rollBack($toLevel);
         }
-        
-        /**
+                    /**
          * Get the number of active transactions.
          *
          * @return int 
          * @static 
          */ 
         public static function transactionLevel()
-        {
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\SQLiteConnection::transactionLevel();
+        {            //Method inherited from \Illuminate\Database\Connection         
+                        /** @var \Illuminate\Database\SQLiteConnection $instance */
+                        return $instance->transactionLevel();
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Events\Dispatcher
      */ 
-    class Event {
-        
-        /**
+        class Event {
+                    /**
          * Register an event listener with the dispatcher.
          *
          * @param string|array $events
-         * @param mixed $listener
+         * @param \Closure|string $listener
          * @return void 
          * @static 
          */ 
         public static function listen($events, $listener)
         {
-            \Illuminate\Events\Dispatcher::listen($events, $listener);
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        $instance->listen($events, $listener);
         }
-        
-        /**
+                    /**
          * Determine if a given event has listeners.
          *
          * @param string $eventName
@@ -4445,10 +4578,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasListeners($eventName)
         {
-            return \Illuminate\Events\Dispatcher::hasListeners($eventName);
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        return $instance->hasListeners($eventName);
+        }
+                    /**
+         * Determine if the given event has any wildcard listeners.
+         *
+         * @param string $eventName
+         * @return bool 
+         * @static 
+         */ 
+        public static function hasWildcardListeners($eventName)
+        {
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        return $instance->hasWildcardListeners($eventName);
         }
-        
-        /**
+                    /**
          * Register an event and payload to be fired later.
          *
          * @param string $event
@@ -4456,12 +4601,12 @@ namespace Illuminate\Support\Facades {
          * @return void 
          * @static 
          */ 
-        public static function push($event, $payload = array())
+        public static function push($event, $payload = [])
         {
-            \Illuminate\Events\Dispatcher::push($event, $payload);
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        $instance->push($event, $payload);
         }
-        
-        /**
+                    /**
          * Flush a set of pushed events.
          *
          * @param string $event
@@ -4470,10 +4615,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flush($event)
         {
-            \Illuminate\Events\Dispatcher::flush($event);
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        $instance->flush($event);
         }
-        
-        /**
+                    /**
          * Register an event subscriber with the dispatcher.
          *
          * @param object|string $subscriber
@@ -4482,10 +4627,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function subscribe($subscriber)
         {
-            \Illuminate\Events\Dispatcher::subscribe($subscriber);
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        $instance->subscribe($subscriber);
         }
-        
-        /**
+                    /**
          * Fire an event until the first non-null response is returned.
          *
          * @param string|object $event
@@ -4493,26 +4638,12 @@ namespace Illuminate\Support\Facades {
          * @return array|null 
          * @static 
          */ 
-        public static function until($event, $payload = array())
-        {
-            return \Illuminate\Events\Dispatcher::until($event, $payload);
-        }
-        
-        /**
-         * Fire an event and call the listeners.
-         *
-         * @param string|object $event
-         * @param mixed $payload
-         * @param bool $halt
-         * @return array|null 
-         * @static 
-         */ 
-        public static function fire($event, $payload = array(), $halt = false)
+        public static function until($event, $payload = [])
         {
-            return \Illuminate\Events\Dispatcher::fire($event, $payload, $halt);
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        return $instance->until($event, $payload);
         }
-        
-        /**
+                    /**
          * Fire an event and call the listeners.
          *
          * @param string|object $event
@@ -4521,12 +4652,12 @@ namespace Illuminate\Support\Facades {
          * @return array|null 
          * @static 
          */ 
-        public static function dispatch($event, $payload = array(), $halt = false)
+        public static function dispatch($event, $payload = [], $halt = false)
         {
-            return \Illuminate\Events\Dispatcher::dispatch($event, $payload, $halt);
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        return $instance->dispatch($event, $payload, $halt);
         }
-        
-        /**
+                    /**
          * Get all of the listeners for a given event name.
          *
          * @param string $eventName
@@ -4535,10 +4666,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getListeners($eventName)
         {
-            return \Illuminate\Events\Dispatcher::getListeners($eventName);
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        return $instance->getListeners($eventName);
         }
-        
-        /**
+                    /**
          * Register an event listener with the dispatcher.
          *
          * @param \Closure|string $listener
@@ -4548,10 +4679,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function makeListener($listener, $wildcard = false)
         {
-            return \Illuminate\Events\Dispatcher::makeListener($listener, $wildcard);
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        return $instance->makeListener($listener, $wildcard);
         }
-        
-        /**
+                    /**
          * Create a class based listener using the IoC container.
          *
          * @param string $listener
@@ -4561,10 +4692,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function createClassListener($listener, $wildcard = false)
         {
-            return \Illuminate\Events\Dispatcher::createClassListener($listener, $wildcard);
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        return $instance->createClassListener($listener, $wildcard);
         }
-        
-        /**
+                    /**
          * Remove a set of listeners from the dispatcher.
          *
          * @param string $event
@@ -4573,10 +4704,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function forget($event)
         {
-            \Illuminate\Events\Dispatcher::forget($event);
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        $instance->forget($event);
         }
-        
-        /**
+                    /**
          * Forget all of the pushed listeners.
          *
          * @return void 
@@ -4584,22 +4715,58 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function forgetPushed()
         {
-            \Illuminate\Events\Dispatcher::forgetPushed();
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        $instance->forgetPushed();
         }
-        
-        /**
+                    /**
          * Set the queue resolver implementation.
          *
          * @param callable $resolver
-         * @return $this 
+         * @return \Illuminate\Events\Dispatcher 
          * @static 
          */ 
         public static function setQueueResolver($resolver)
         {
-            return \Illuminate\Events\Dispatcher::setQueueResolver($resolver);
+                        /** @var \Illuminate\Events\Dispatcher $instance */
+                        return $instance->setQueueResolver($resolver);
+        }
+                    /**
+         * Register a custom macro.
+         *
+         * @param string $name
+         * @param object|callable $macro
+         * @return void 
+         * @static 
+         */ 
+        public static function macro($name, $macro)
+        {
+                        \Illuminate\Events\Dispatcher::macro($name, $macro);
+        }
+                    /**
+         * Mix another object into the class.
+         *
+         * @param object $mixin
+         * @param bool $replace
+         * @return void 
+         * @throws \ReflectionException
+         * @static 
+         */ 
+        public static function mixin($mixin, $replace = true)
+        {
+                        \Illuminate\Events\Dispatcher::mixin($mixin, $replace);
+        }
+                    /**
+         * Checks if macro is registered.
+         *
+         * @param string $name
+         * @return bool 
+         * @static 
+         */ 
+        public static function hasMacro($name)
+        {
+                        return \Illuminate\Events\Dispatcher::hasMacro($name);
         }
-        
-        /**
+                    /**
          * Assert if an event was dispatched based on a truth-test callback.
          *
          * @param string $event
@@ -4609,10 +4776,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertDispatched($event, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\EventFake::assertDispatched($event, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */
+                        $instance->assertDispatched($event, $callback);
         }
-        
-        /**
+                    /**
          * Assert if a event was dispatched a number of times.
          *
          * @param string $event
@@ -4622,10 +4789,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertDispatchedTimes($event, $times = 1)
         {
-            \Illuminate\Support\Testing\Fakes\EventFake::assertDispatchedTimes($event, $times);
+                        /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */
+                        $instance->assertDispatchedTimes($event, $times);
         }
-        
-        /**
+                    /**
          * Determine if an event was dispatched based on a truth-test callback.
          *
          * @param string $event
@@ -4635,10 +4802,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertNotDispatched($event, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\EventFake::assertNotDispatched($event, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */
+                        $instance->assertNotDispatched($event, $callback);
         }
-        
-        /**
+                    /**
          * Get all of the events matching a truth-test callback.
          *
          * @param string $event
@@ -4648,10 +4815,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function dispatched($event, $callback = null)
         {
-            return \Illuminate\Support\Testing\Fakes\EventFake::dispatched($event, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */
+                        return $instance->dispatched($event, $callback);
         }
-        
-        /**
+                    /**
          * Determine if the given event has been dispatched.
          *
          * @param string $event
@@ -4660,19 +4827,18 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasDispatched($event)
         {
-            return \Illuminate\Support\Testing\Fakes\EventFake::hasDispatched($event);
+                        /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */
+                        return $instance->hasDispatched($event);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Filesystem\Filesystem
      */ 
-    class File {
-        
-        /**
+        class File {
+                    /**
          * Determine if a file or directory exists.
          *
          * @param string $path
@@ -4681,10 +4847,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function exists($path)
         {
-            return \Illuminate\Filesystem\Filesystem::exists($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->exists($path);
+        }
+                    /**
+         * Determine if a file or directory is missing.
+         *
+         * @param string $path
+         * @return bool 
+         * @static 
+         */ 
+        public static function missing($path)
+        {
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->missing($path);
         }
-        
-        /**
+                    /**
          * Get the contents of a file.
          *
          * @param string $path
@@ -4695,10 +4873,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function get($path, $lock = false)
         {
-            return \Illuminate\Filesystem\Filesystem::get($path, $lock);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->get($path, $lock);
         }
-        
-        /**
+                    /**
          * Get contents of a file with shared access.
          *
          * @param string $path
@@ -4707,10 +4885,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function sharedGet($path)
         {
-            return \Illuminate\Filesystem\Filesystem::sharedGet($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->sharedGet($path);
         }
-        
-        /**
+                    /**
          * Get the returned value of a file.
          *
          * @param string $path
@@ -4720,10 +4898,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getRequire($path)
         {
-            return \Illuminate\Filesystem\Filesystem::getRequire($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->getRequire($path);
         }
-        
-        /**
+                    /**
          * Require the given file once.
          *
          * @param string $file
@@ -4732,10 +4910,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function requireOnce($file)
         {
-            return \Illuminate\Filesystem\Filesystem::requireOnce($file);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->requireOnce($file);
         }
-        
-        /**
+                    /**
          * Get the MD5 hash of the file at the given path.
          *
          * @param string $path
@@ -4744,24 +4922,37 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hash($path)
         {
-            return \Illuminate\Filesystem\Filesystem::hash($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->hash($path);
         }
-        
-        /**
+                    /**
          * Write the contents of a file.
          *
          * @param string $path
          * @param string $contents
          * @param bool $lock
-         * @return int 
+         * @return int|bool 
          * @static 
          */ 
         public static function put($path, $contents, $lock = false)
         {
-            return \Illuminate\Filesystem\Filesystem::put($path, $contents, $lock);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->put($path, $contents, $lock);
+        }
+                    /**
+         * Write the contents of a file, replacing it atomically if it already exists.
+         *
+         * @param string $path
+         * @param string $content
+         * @return void 
+         * @static 
+         */ 
+        public static function replace($path, $content)
+        {
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        $instance->replace($path, $content);
         }
-        
-        /**
+                    /**
          * Prepend to a file.
          *
          * @param string $path
@@ -4771,10 +4962,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function prepend($path, $data)
         {
-            return \Illuminate\Filesystem\Filesystem::prepend($path, $data);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->prepend($path, $data);
         }
-        
-        /**
+                    /**
          * Append to a file.
          *
          * @param string $path
@@ -4784,23 +4975,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function append($path, $data)
         {
-            return \Illuminate\Filesystem\Filesystem::append($path, $data);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->append($path, $data);
         }
-        
-        /**
+                    /**
          * Get or set UNIX mode of a file or directory.
          *
          * @param string $path
-         * @param int $mode
+         * @param int|null $mode
          * @return mixed 
          * @static 
          */ 
         public static function chmod($path, $mode = null)
         {
-            return \Illuminate\Filesystem\Filesystem::chmod($path, $mode);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->chmod($path, $mode);
         }
-        
-        /**
+                    /**
          * Delete the file at a given path.
          *
          * @param string|array $paths
@@ -4809,10 +5000,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function delete($paths)
         {
-            return \Illuminate\Filesystem\Filesystem::delete($paths);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->delete($paths);
         }
-        
-        /**
+                    /**
          * Move a file to a new location.
          *
          * @param string $path
@@ -4822,10 +5013,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function move($path, $target)
         {
-            return \Illuminate\Filesystem\Filesystem::move($path, $target);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->move($path, $target);
         }
-        
-        /**
+                    /**
          * Copy a file to a new location.
          *
          * @param string $path
@@ -4835,11 +5026,11 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function copy($path, $target)
         {
-            return \Illuminate\Filesystem\Filesystem::copy($path, $target);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->copy($path, $target);
         }
-        
-        /**
-         * Create a hard link to the target file or directory.
+                    /**
+         * Create a symlink to the target file or directory. On Windows, a hard link is created if the target is a file.
          *
          * @param string $target
          * @param string $link
@@ -4848,10 +5039,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function link($target, $link)
         {
-            \Illuminate\Filesystem\Filesystem::link($target, $link);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        $instance->link($target, $link);
         }
-        
-        /**
+                    /**
          * Extract the file name from a file path.
          *
          * @param string $path
@@ -4860,10 +5051,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function name($path)
         {
-            return \Illuminate\Filesystem\Filesystem::name($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->name($path);
         }
-        
-        /**
+                    /**
          * Extract the trailing name component from a file path.
          *
          * @param string $path
@@ -4872,10 +5063,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function basename($path)
         {
-            return \Illuminate\Filesystem\Filesystem::basename($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->basename($path);
         }
-        
-        /**
+                    /**
          * Extract the parent directory from a file path.
          *
          * @param string $path
@@ -4884,10 +5075,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function dirname($path)
         {
-            return \Illuminate\Filesystem\Filesystem::dirname($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->dirname($path);
         }
-        
-        /**
+                    /**
          * Extract the file extension from a file path.
          *
          * @param string $path
@@ -4896,10 +5087,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function extension($path)
         {
-            return \Illuminate\Filesystem\Filesystem::extension($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->extension($path);
         }
-        
-        /**
+                    /**
          * Get the file type of a given file.
          *
          * @param string $path
@@ -4908,10 +5099,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function type($path)
         {
-            return \Illuminate\Filesystem\Filesystem::type($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->type($path);
         }
-        
-        /**
+                    /**
          * Get the mime-type of a given file.
          *
          * @param string $path
@@ -4920,10 +5111,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function mimeType($path)
         {
-            return \Illuminate\Filesystem\Filesystem::mimeType($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->mimeType($path);
         }
-        
-        /**
+                    /**
          * Get the file size of a given file.
          *
          * @param string $path
@@ -4932,10 +5123,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function size($path)
         {
-            return \Illuminate\Filesystem\Filesystem::size($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->size($path);
         }
-        
-        /**
+                    /**
          * Get the file's last modification time.
          *
          * @param string $path
@@ -4944,10 +5135,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function lastModified($path)
         {
-            return \Illuminate\Filesystem\Filesystem::lastModified($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->lastModified($path);
         }
-        
-        /**
+                    /**
          * Determine if the given path is a directory.
          *
          * @param string $directory
@@ -4956,10 +5147,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function isDirectory($directory)
         {
-            return \Illuminate\Filesystem\Filesystem::isDirectory($directory);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->isDirectory($directory);
         }
-        
-        /**
+                    /**
          * Determine if the given path is readable.
          *
          * @param string $path
@@ -4968,10 +5159,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function isReadable($path)
         {
-            return \Illuminate\Filesystem\Filesystem::isReadable($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->isReadable($path);
         }
-        
-        /**
+                    /**
          * Determine if the given path is writable.
          *
          * @param string $path
@@ -4980,10 +5171,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function isWritable($path)
         {
-            return \Illuminate\Filesystem\Filesystem::isWritable($path);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->isWritable($path);
         }
-        
-        /**
+                    /**
          * Determine if the given path is a file.
          *
          * @param string $file
@@ -4992,10 +5183,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function isFile($file)
         {
-            return \Illuminate\Filesystem\Filesystem::isFile($file);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->isFile($file);
         }
-        
-        /**
+                    /**
          * Find path names matching a given pattern.
          *
          * @param string $pattern
@@ -5005,10 +5196,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function glob($pattern, $flags = 0)
         {
-            return \Illuminate\Filesystem\Filesystem::glob($pattern, $flags);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->glob($pattern, $flags);
         }
-        
-        /**
+                    /**
          * Get an array of all files in a directory.
          *
          * @param string $directory
@@ -5018,10 +5209,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function files($directory, $hidden = false)
         {
-            return \Illuminate\Filesystem\Filesystem::files($directory, $hidden);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->files($directory, $hidden);
         }
-        
-        /**
+                    /**
          * Get all of the files from the given directory (recursive).
          *
          * @param string $directory
@@ -5031,10 +5222,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function allFiles($directory, $hidden = false)
         {
-            return \Illuminate\Filesystem\Filesystem::allFiles($directory, $hidden);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->allFiles($directory, $hidden);
         }
-        
-        /**
+                    /**
          * Get all of the directories within a given directory.
          *
          * @param string $directory
@@ -5043,10 +5234,24 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function directories($directory)
         {
-            return \Illuminate\Filesystem\Filesystem::directories($directory);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->directories($directory);
+        }
+                    /**
+         * Ensure a directory exists.
+         *
+         * @param string $path
+         * @param int $mode
+         * @param bool $recursive
+         * @return void 
+         * @static 
+         */ 
+        public static function ensureDirectoryExists($path, $mode = 493, $recursive = true)
+        {
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        $instance->ensureDirectoryExists($path, $mode, $recursive);
         }
-        
-        /**
+                    /**
          * Create a directory.
          *
          * @param string $path
@@ -5058,10 +5263,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function makeDirectory($path, $mode = 493, $recursive = false, $force = false)
         {
-            return \Illuminate\Filesystem\Filesystem::makeDirectory($path, $mode, $recursive, $force);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->makeDirectory($path, $mode, $recursive, $force);
         }
-        
-        /**
+                    /**
          * Move a directory.
          *
          * @param string $from
@@ -5072,24 +5277,24 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function moveDirectory($from, $to, $overwrite = false)
         {
-            return \Illuminate\Filesystem\Filesystem::moveDirectory($from, $to, $overwrite);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->moveDirectory($from, $to, $overwrite);
         }
-        
-        /**
+                    /**
          * Copy a directory from one location to another.
          *
          * @param string $directory
          * @param string $destination
-         * @param int $options
+         * @param int|null $options
          * @return bool 
          * @static 
          */ 
         public static function copyDirectory($directory, $destination, $options = null)
         {
-            return \Illuminate\Filesystem\Filesystem::copyDirectory($directory, $destination, $options);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->copyDirectory($directory, $destination, $options);
         }
-        
-        /**
+                    /**
          * Recursively delete a directory.
          * 
          * The directory itself may be optionally preserved.
@@ -5101,10 +5306,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function deleteDirectory($directory, $preserve = false)
         {
-            return \Illuminate\Filesystem\Filesystem::deleteDirectory($directory, $preserve);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->deleteDirectory($directory, $preserve);
+        }
+                    /**
+         * Remove all of the directories within a given directory.
+         *
+         * @param string $directory
+         * @return bool 
+         * @static 
+         */ 
+        public static function deleteDirectories($directory)
+        {
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->deleteDirectories($directory);
         }
-        
-        /**
+                    /**
          * Empty the specified directory of all files and folders.
          *
          * @param string $directory
@@ -5113,10 +5330,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function cleanDirectory($directory)
         {
-            return \Illuminate\Filesystem\Filesystem::cleanDirectory($directory);
+                        /** @var \Illuminate\Filesystem\Filesystem $instance */
+                        return $instance->cleanDirectory($directory);
         }
-        
-        /**
+                    /**
          * Register a custom macro.
          *
          * @param string $name
@@ -5126,23 +5343,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function macro($name, $macro)
         {
-            \Illuminate\Filesystem\Filesystem::macro($name, $macro);
+                        \Illuminate\Filesystem\Filesystem::macro($name, $macro);
         }
-        
-        /**
+                    /**
          * Mix another object into the class.
          *
          * @param object $mixin
+         * @param bool $replace
          * @return void 
          * @throws \ReflectionException
          * @static 
          */ 
-        public static function mixin($mixin)
+        public static function mixin($mixin, $replace = true)
         {
-            \Illuminate\Filesystem\Filesystem::mixin($mixin);
+                        \Illuminate\Filesystem\Filesystem::mixin($mixin, $replace);
         }
-        
-        /**
+                    /**
          * Checks if macro is registered.
          *
          * @param string $name
@@ -5151,19 +5367,17 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasMacro($name)
         {
-            return \Illuminate\Filesystem\Filesystem::hasMacro($name);
+                        return \Illuminate\Filesystem\Filesystem::hasMacro($name);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Contracts\Auth\Access\Gate
      */ 
-    class Gate {
-        
-        /**
+        class Gate {
+                    /**
          * Determine if a given ability has been defined.
          *
          * @param string|array $ability
@@ -5172,75 +5386,75 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function has($ability)
         {
-            return \Illuminate\Auth\Access\Gate::has($ability);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->has($ability);
         }
-        
-        /**
+                    /**
          * Define a new ability.
          *
          * @param string $ability
          * @param callable|string $callback
-         * @return $this 
+         * @return \Illuminate\Auth\Access\Gate 
          * @throws \InvalidArgumentException
          * @static 
          */ 
         public static function define($ability, $callback)
         {
-            return \Illuminate\Auth\Access\Gate::define($ability, $callback);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->define($ability, $callback);
         }
-        
-        /**
+                    /**
          * Define abilities for a resource.
          *
          * @param string $name
          * @param string $class
          * @param array|null $abilities
-         * @return $this 
+         * @return \Illuminate\Auth\Access\Gate 
          * @static 
          */ 
         public static function resource($name, $class, $abilities = null)
         {
-            return \Illuminate\Auth\Access\Gate::resource($name, $class, $abilities);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->resource($name, $class, $abilities);
         }
-        
-        /**
+                    /**
          * Define a policy class for a given class type.
          *
          * @param string $class
          * @param string $policy
-         * @return $this 
+         * @return \Illuminate\Auth\Access\Gate 
          * @static 
          */ 
         public static function policy($class, $policy)
         {
-            return \Illuminate\Auth\Access\Gate::policy($class, $policy);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->policy($class, $policy);
         }
-        
-        /**
+                    /**
          * Register a callback to run before all Gate checks.
          *
          * @param callable $callback
-         * @return $this 
+         * @return \Illuminate\Auth\Access\Gate 
          * @static 
          */ 
         public static function before($callback)
         {
-            return \Illuminate\Auth\Access\Gate::before($callback);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->before($callback);
         }
-        
-        /**
+                    /**
          * Register a callback to run after all Gate checks.
          *
          * @param callable $callback
-         * @return $this 
+         * @return \Illuminate\Auth\Access\Gate 
          * @static 
          */ 
         public static function after($callback)
         {
-            return \Illuminate\Auth\Access\Gate::after($callback);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->after($callback);
         }
-        
-        /**
+                    /**
          * Determine if the given ability should be granted for the current user.
          *
          * @param string $ability
@@ -5248,12 +5462,12 @@ namespace Illuminate\Support\Facades {
          * @return bool 
          * @static 
          */ 
-        public static function allows($ability, $arguments = array())
+        public static function allows($ability, $arguments = [])
         {
-            return \Illuminate\Auth\Access\Gate::allows($ability, $arguments);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->allows($ability, $arguments);
         }
-        
-        /**
+                    /**
          * Determine if the given ability should be denied for the current user.
          *
          * @param string $ability
@@ -5261,12 +5475,12 @@ namespace Illuminate\Support\Facades {
          * @return bool 
          * @static 
          */ 
-        public static function denies($ability, $arguments = array())
+        public static function denies($ability, $arguments = [])
         {
-            return \Illuminate\Auth\Access\Gate::denies($ability, $arguments);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->denies($ability, $arguments);
         }
-        
-        /**
+                    /**
          * Determine if all of the given abilities should be granted for the current user.
          *
          * @param \Illuminate\Auth\Access\iterable|string $abilities
@@ -5274,12 +5488,12 @@ namespace Illuminate\Support\Facades {
          * @return bool 
          * @static 
          */ 
-        public static function check($abilities, $arguments = array())
+        public static function check($abilities, $arguments = [])
         {
-            return \Illuminate\Auth\Access\Gate::check($abilities, $arguments);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->check($abilities, $arguments);
         }
-        
-        /**
+                    /**
          * Determine if any one of the given abilities should be granted for the current user.
          *
          * @param \Illuminate\Auth\Access\iterable|string $abilities
@@ -5287,12 +5501,25 @@ namespace Illuminate\Support\Facades {
          * @return bool 
          * @static 
          */ 
-        public static function any($abilities, $arguments = array())
+        public static function any($abilities, $arguments = [])
+        {
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->any($abilities, $arguments);
+        }
+                    /**
+         * Determine if all of the given abilities should be denied for the current user.
+         *
+         * @param \Illuminate\Auth\Access\iterable|string $abilities
+         * @param array|mixed $arguments
+         * @return bool 
+         * @static 
+         */ 
+        public static function none($abilities, $arguments = [])
         {
-            return \Illuminate\Auth\Access\Gate::any($abilities, $arguments);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->none($abilities, $arguments);
         }
-        
-        /**
+                    /**
          * Determine if the given ability should be granted for the current user.
          *
          * @param string $ability
@@ -5301,36 +5528,76 @@ namespace Illuminate\Support\Facades {
          * @throws \Illuminate\Auth\Access\AuthorizationException
          * @static 
          */ 
-        public static function authorize($ability, $arguments = array())
+        public static function authorize($ability, $arguments = [])
         {
-            return \Illuminate\Auth\Access\Gate::authorize($ability, $arguments);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->authorize($ability, $arguments);
         }
-        
-        /**
-         * Get a policy instance for a given class.
+                    /**
+         * Inspect the user for the given ability.
          *
-         * @param object|string $class
+         * @param string $ability
+         * @param array|mixed $arguments
+         * @return \Illuminate\Auth\Access\Response 
+         * @static 
+         */ 
+        public static function inspect($ability, $arguments = [])
+        {
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->inspect($ability, $arguments);
+        }
+                    /**
+         * Get the raw result from the authorization callback.
+         *
+         * @param string $ability
+         * @param array|mixed $arguments
          * @return mixed 
+         * @throws \Illuminate\Auth\Access\AuthorizationException
          * @static 
          */ 
-        public static function getPolicyFor($class)
+        public static function raw($ability, $arguments = [])
         {
-            return \Illuminate\Auth\Access\Gate::getPolicyFor($class);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->raw($ability, $arguments);
         }
-        
-        /**
-         * Build a policy class instance of the given type.
+                    /**
+         * Get a policy instance for a given class.
          *
          * @param object|string $class
          * @return mixed 
          * @static 
          */ 
-        public static function resolvePolicy($class)
+        public static function getPolicyFor($class)
         {
-            return \Illuminate\Auth\Access\Gate::resolvePolicy($class);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->getPolicyFor($class);
         }
-        
-        /**
+                    /**
+         * Specify a callback to be used to guess policy names.
+         *
+         * @param callable $callback
+         * @return \Illuminate\Auth\Access\Gate 
+         * @static 
+         */ 
+        public static function guessPolicyNamesUsing($callback)
+        {
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->guessPolicyNamesUsing($callback);
+        }
+                    /**
+         * Build a policy class instance of the given type.
+         *
+         * @param object|string $class
+         * @return mixed 
+         * @throws \Illuminate\Contracts\Container\BindingResolutionException
+         * @static 
+         */ 
+        public static function resolvePolicy($class)
+        {
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->resolvePolicy($class);
+        }
+                    /**
          * Get a gate instance for the given user.
          *
          * @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user
@@ -5339,10 +5606,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function forUser($user)
         {
-            return \Illuminate\Auth\Access\Gate::forUser($user);
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->forUser($user);
         }
-        
-        /**
+                    /**
          * Get all of the defined abilities.
          *
          * @return array 
@@ -5350,10 +5617,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function abilities()
         {
-            return \Illuminate\Auth\Access\Gate::abilities();
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->abilities();
         }
-        
-        /**
+                    /**
          * Get all of the defined policies.
          *
          * @return array 
@@ -5361,19 +5628,18 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function policies()
         {
-            return \Illuminate\Auth\Access\Gate::policies();
+                        /** @var \Illuminate\Auth\Access\Gate $instance */
+                        return $instance->policies();
         }
          
     }
-
-    /**
+            /**
      * 
      *
-     * @see \Illuminate\Hashing\BcryptHasher
+     * @see \Illuminate\Hashing\HashManager
      */ 
-    class Hash {
-        
-        /**
+        class Hash {
+                    /**
          * Create an instance of the Bcrypt hash Driver.
          *
          * @return \Illuminate\Hashing\BcryptHasher 
@@ -5381,21 +5647,32 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function createBcryptDriver()
         {
-            return \Illuminate\Hashing\HashManager::createBcryptDriver();
+                        /** @var \Illuminate\Hashing\HashManager $instance */
+                        return $instance->createBcryptDriver();
         }
-        
-        /**
-         * Create an instance of the Argon2 hash Driver.
+                    /**
+         * Create an instance of the Argon2i hash Driver.
          *
          * @return \Illuminate\Hashing\ArgonHasher 
          * @static 
          */ 
         public static function createArgonDriver()
         {
-            return \Illuminate\Hashing\HashManager::createArgonDriver();
+                        /** @var \Illuminate\Hashing\HashManager $instance */
+                        return $instance->createArgonDriver();
+        }
+                    /**
+         * Create an instance of the Argon2id hash Driver.
+         *
+         * @return \Illuminate\Hashing\Argon2IdHasher 
+         * @static 
+         */ 
+        public static function createArgon2idDriver()
+        {
+                        /** @var \Illuminate\Hashing\HashManager $instance */
+                        return $instance->createArgon2idDriver();
         }
-        
-        /**
+                    /**
          * Get information about the given hashed value.
          *
          * @param string $hashedValue
@@ -5404,10 +5681,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function info($hashedValue)
         {
-            return \Illuminate\Hashing\HashManager::info($hashedValue);
+                        /** @var \Illuminate\Hashing\HashManager $instance */
+                        return $instance->info($hashedValue);
         }
-        
-        /**
+                    /**
          * Hash the given value.
          *
          * @param string $value
@@ -5415,12 +5692,12 @@ namespace Illuminate\Support\Facades {
          * @return string 
          * @static 
          */ 
-        public static function make($value, $options = array())
+        public static function make($value, $options = [])
         {
-            return \Illuminate\Hashing\HashManager::make($value, $options);
+                        /** @var \Illuminate\Hashing\HashManager $instance */
+                        return $instance->make($value, $options);
         }
-        
-        /**
+                    /**
          * Check the given plain value against a hash.
          *
          * @param string $value
@@ -5429,12 +5706,12 @@ namespace Illuminate\Support\Facades {
          * @return bool 
          * @static 
          */ 
-        public static function check($value, $hashedValue, $options = array())
+        public static function check($value, $hashedValue, $options = [])
         {
-            return \Illuminate\Hashing\HashManager::check($value, $hashedValue, $options);
+                        /** @var \Illuminate\Hashing\HashManager $instance */
+                        return $instance->check($value, $hashedValue, $options);
         }
-        
-        /**
+                    /**
          * Check if the given hash has been hashed using the given options.
          *
          * @param string $hashedValue
@@ -5442,12 +5719,12 @@ namespace Illuminate\Support\Facades {
          * @return bool 
          * @static 
          */ 
-        public static function needsRehash($hashedValue, $options = array())
+        public static function needsRehash($hashedValue, $options = [])
         {
-            return \Illuminate\Hashing\HashManager::needsRehash($hashedValue, $options);
+                        /** @var \Illuminate\Hashing\HashManager $instance */
+                        return $instance->needsRehash($hashedValue, $options);
         }
-        
-        /**
+                    /**
          * Get the default driver name.
          *
          * @return string 
@@ -5455,10 +5732,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDefaultDriver()
         {
-            return \Illuminate\Hashing\HashManager::getDefaultDriver();
+                        /** @var \Illuminate\Hashing\HashManager $instance */
+                        return $instance->getDefaultDriver();
         }
-        
-        /**
+                    /**
          * Get a driver instance.
          *
          * @param string $driver
@@ -5467,47 +5744,43 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function driver($driver = null)
-        {
-            //Method inherited from \Illuminate\Support\Manager            
-            return \Illuminate\Hashing\HashManager::driver($driver);
+        {            //Method inherited from \Illuminate\Support\Manager         
+                        /** @var \Illuminate\Hashing\HashManager $instance */
+                        return $instance->driver($driver);
         }
-        
-        /**
+                    /**
          * Register a custom driver creator Closure.
          *
          * @param string $driver
          * @param \Closure $callback
-         * @return $this 
+         * @return \Illuminate\Hashing\HashManager 
          * @static 
          */ 
         public static function extend($driver, $callback)
-        {
-            //Method inherited from \Illuminate\Support\Manager            
-            return \Illuminate\Hashing\HashManager::extend($driver, $callback);
+        {            //Method inherited from \Illuminate\Support\Manager         
+                        /** @var \Illuminate\Hashing\HashManager $instance */
+                        return $instance->extend($driver, $callback);
         }
-        
-        /**
+                    /**
          * Get all of the created "drivers".
          *
          * @return array 
          * @static 
          */ 
         public static function getDrivers()
-        {
-            //Method inherited from \Illuminate\Support\Manager            
-            return \Illuminate\Hashing\HashManager::getDrivers();
+        {            //Method inherited from \Illuminate\Support\Manager         
+                        /** @var \Illuminate\Hashing\HashManager $instance */
+                        return $instance->getDrivers();
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Translation\Translator
      */ 
-    class Lang {
-        
-        /**
+        class Lang {
+                    /**
          * Determine if a translation exists for a given locale.
          *
          * @param string $key
@@ -5517,10 +5790,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasForLocale($key, $locale = null)
         {
-            return \Illuminate\Translation\Translator::hasForLocale($key, $locale);
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        return $instance->hasForLocale($key, $locale);
         }
-        
-        /**
+                    /**
          * Determine if a translation exists.
          *
          * @param string $key
@@ -5531,83 +5804,40 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function has($key, $locale = null, $fallback = true)
         {
-            return \Illuminate\Translation\Translator::has($key, $locale, $fallback);
-        }
-        
-        /**
-         * Get the translation for a given key.
-         *
-         * @param string $key
-         * @param array $replace
-         * @param string $locale
-         * @return string|array|null 
-         * @static 
-         */ 
-        public static function trans($key, $replace = array(), $locale = null)
-        {
-            return \Illuminate\Translation\Translator::trans($key, $replace, $locale);
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        return $instance->has($key, $locale, $fallback);
         }
-        
-        /**
+                    /**
          * Get the translation for the given key.
          *
          * @param string $key
          * @param array $replace
          * @param string|null $locale
          * @param bool $fallback
-         * @return string|array|null 
-         * @static 
-         */ 
-        public static function get($key, $replace = array(), $locale = null, $fallback = true)
-        {
-            return \Illuminate\Translation\Translator::get($key, $replace, $locale, $fallback);
-        }
-        
-        /**
-         * Get the translation for a given key from the JSON translation files.
-         *
-         * @param string $key
-         * @param array $replace
-         * @param string $locale
-         * @return string|array|null 
-         * @static 
-         */ 
-        public static function getFromJson($key, $replace = array(), $locale = null)
-        {
-            return \Illuminate\Translation\Translator::getFromJson($key, $replace, $locale);
-        }
-        
-        /**
-         * Get a translation according to an integer value.
-         *
-         * @param string $key
-         * @param int|array|\Countable $number
-         * @param array $replace
-         * @param string $locale
-         * @return string 
+         * @return string|array 
          * @static 
          */ 
-        public static function transChoice($key, $number, $replace = array(), $locale = null)
+        public static function get($key, $replace = [], $locale = null, $fallback = true)
         {
-            return \Illuminate\Translation\Translator::transChoice($key, $number, $replace, $locale);
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        return $instance->get($key, $replace, $locale, $fallback);
         }
-        
-        /**
+                    /**
          * Get a translation according to an integer value.
          *
          * @param string $key
-         * @param int|array|\Countable $number
+         * @param \Countable|int|array $number
          * @param array $replace
-         * @param string $locale
+         * @param string|null $locale
          * @return string 
          * @static 
          */ 
-        public static function choice($key, $number, $replace = array(), $locale = null)
+        public static function choice($key, $number, $replace = [], $locale = null)
         {
-            return \Illuminate\Translation\Translator::choice($key, $number, $replace, $locale);
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        return $instance->choice($key, $number, $replace, $locale);
         }
-        
-        /**
+                    /**
          * Add translation lines to the given locale.
          *
          * @param array $lines
@@ -5618,10 +5848,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function addLines($lines, $locale, $namespace = '*')
         {
-            \Illuminate\Translation\Translator::addLines($lines, $locale, $namespace);
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        $instance->addLines($lines, $locale, $namespace);
         }
-        
-        /**
+                    /**
          * Load the specified language group.
          *
          * @param string $namespace
@@ -5632,10 +5862,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function load($namespace, $group, $locale)
         {
-            \Illuminate\Translation\Translator::load($namespace, $group, $locale);
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        $instance->load($namespace, $group, $locale);
         }
-        
-        /**
+                    /**
          * Add a new namespace to the loader.
          *
          * @param string $namespace
@@ -5645,10 +5875,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function addNamespace($namespace, $hint)
         {
-            \Illuminate\Translation\Translator::addNamespace($namespace, $hint);
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        $instance->addNamespace($namespace, $hint);
         }
-        
-        /**
+                    /**
          * Add a new JSON path to the loader.
          *
          * @param string $path
@@ -5657,10 +5887,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function addJsonPath($path)
         {
-            \Illuminate\Translation\Translator::addJsonPath($path);
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        $instance->addJsonPath($path);
         }
-        
-        /**
+                    /**
          * Parse a key into namespace, group, and item.
          *
          * @param string $key
@@ -5669,10 +5899,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function parseKey($key)
         {
-            return \Illuminate\Translation\Translator::parseKey($key);
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        return $instance->parseKey($key);
         }
-        
-        /**
+                    /**
          * Get the message selector instance.
          *
          * @return \Illuminate\Translation\MessageSelector 
@@ -5680,10 +5910,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getSelector()
         {
-            return \Illuminate\Translation\Translator::getSelector();
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        return $instance->getSelector();
         }
-        
-        /**
+                    /**
          * Set the message selector instance.
          *
          * @param \Illuminate\Translation\MessageSelector $selector
@@ -5692,10 +5922,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setSelector($selector)
         {
-            \Illuminate\Translation\Translator::setSelector($selector);
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        $instance->setSelector($selector);
         }
-        
-        /**
+                    /**
          * Get the language line loader implementation.
          *
          * @return \Illuminate\Contracts\Translation\Loader 
@@ -5703,10 +5933,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getLoader()
         {
-            return \Illuminate\Translation\Translator::getLoader();
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        return $instance->getLoader();
         }
-        
-        /**
+                    /**
          * Get the default locale being used.
          *
          * @return string 
@@ -5714,10 +5944,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function locale()
         {
-            return \Illuminate\Translation\Translator::locale();
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        return $instance->locale();
         }
-        
-        /**
+                    /**
          * Get the default locale being used.
          *
          * @return string 
@@ -5725,10 +5955,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getLocale()
         {
-            return \Illuminate\Translation\Translator::getLocale();
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        return $instance->getLocale();
         }
-        
-        /**
+                    /**
          * Set the default locale.
          *
          * @param string $locale
@@ -5737,10 +5967,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setLocale($locale)
         {
-            \Illuminate\Translation\Translator::setLocale($locale);
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        $instance->setLocale($locale);
         }
-        
-        /**
+                    /**
          * Get the fallback locale being used.
          *
          * @return string 
@@ -5748,10 +5978,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getFallback()
         {
-            return \Illuminate\Translation\Translator::getFallback();
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        return $instance->getFallback();
         }
-        
-        /**
+                    /**
          * Set the fallback locale being used.
          *
          * @param string $fallback
@@ -5760,10 +5990,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setFallback($fallback)
         {
-            \Illuminate\Translation\Translator::setFallback($fallback);
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        $instance->setFallback($fallback);
         }
-        
-        /**
+                    /**
          * Set the loaded translation groups.
          *
          * @param array $loaded
@@ -5772,10 +6002,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setLoaded($loaded)
         {
-            \Illuminate\Translation\Translator::setLoaded($loaded);
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        $instance->setLoaded($loaded);
         }
-        
-        /**
+                    /**
          * Set the parsed value of a key.
          *
          * @param string $key
@@ -5784,12 +6014,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function setParsedKey($key, $parsed)
-        {
-            //Method inherited from \Illuminate\Support\NamespacedItemResolver            
-            \Illuminate\Translation\Translator::setParsedKey($key, $parsed);
+        {            //Method inherited from \Illuminate\Support\NamespacedItemResolver         
+                        /** @var \Illuminate\Translation\Translator $instance */
+                        $instance->setParsedKey($key, $parsed);
         }
-        
-        /**
+                    /**
          * Register a custom macro.
          *
          * @param string $name
@@ -5799,23 +6028,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function macro($name, $macro)
         {
-            \Illuminate\Translation\Translator::macro($name, $macro);
+                        \Illuminate\Translation\Translator::macro($name, $macro);
         }
-        
-        /**
+                    /**
          * Mix another object into the class.
          *
          * @param object $mixin
+         * @param bool $replace
          * @return void 
          * @throws \ReflectionException
          * @static 
          */ 
-        public static function mixin($mixin)
+        public static function mixin($mixin, $replace = true)
         {
-            \Illuminate\Translation\Translator::mixin($mixin);
+                        \Illuminate\Translation\Translator::mixin($mixin, $replace);
         }
-        
-        /**
+                    /**
          * Checks if macro is registered.
          *
          * @param string $name
@@ -5824,196 +6052,228 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasMacro($name)
         {
-            return \Illuminate\Translation\Translator::hasMacro($name);
+                        return \Illuminate\Translation\Translator::hasMacro($name);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Log\Logger
      */ 
-    class Log {
-        
-        /**
-         * Adds a log record at the DEBUG level.
+        class Log {
+                    /**
+         * Create a new, on-demand aggregate logger instance.
          *
-         * @param string $message The log message
-         * @param array $context The log context
-         * @return Boolean Whether the record has been processed
+         * @param array $channels
+         * @param string|null $channel
+         * @return \Psr\Log\LoggerInterface 
          * @static 
          */ 
-        public static function debug($message, $context = array())
+        public static function stack($channels, $channel = null)
         {
-            return \Monolog\Logger::addDebug($message, $context);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        return $instance->stack($channels, $channel);
         }
-        
-        /**
-         * Adds a log record at the INFO level.
+                    /**
+         * Get a log channel instance.
          *
-         * @param string $message The log message
-         * @param array $context The log context
-         * @return Boolean Whether the record has been processed
+         * @param string|null $channel
+         * @return \Psr\Log\LoggerInterface 
          * @static 
          */ 
-        public static function info($message, $context = array())
+        public static function channel($channel = null)
         {
-            return \Monolog\Logger::addInfo($message, $context);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        return $instance->channel($channel);
         }
-        
-        /**
-         * Adds a log record at the NOTICE level.
+                    /**
+         * Get a log driver instance.
          *
-         * @param string $message The log message
-         * @param array $context The log context
-         * @return Boolean Whether the record has been processed
+         * @param string|null $driver
+         * @return \Psr\Log\LoggerInterface 
          * @static 
          */ 
-        public static function notice($message, $context = array())
+        public static function driver($driver = null)
         {
-            return \Monolog\Logger::addNotice($message, $context);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        return $instance->driver($driver);
         }
-        
-        /**
-         * Adds a log record at the WARNING level.
+                    /**
+         * 
          *
-         * @param string $message The log message
-         * @param array $context The log context
-         * @return Boolean Whether the record has been processed
+         * @return array 
          * @static 
          */ 
-        public static function warning($message, $context = array())
+        public static function getChannels()
         {
-            return \Monolog\Logger::addWarning($message, $context);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        return $instance->getChannels();
         }
-        
-        /**
-         * Adds a log record at the ERROR level.
+                    /**
+         * Get the default log driver name.
          *
-         * @param string $message The log message
-         * @param array $context The log context
-         * @return Boolean Whether the record has been processed
+         * @return string 
          * @static 
          */ 
-        public static function error($message, $context = array())
+        public static function getDefaultDriver()
         {
-            return \Monolog\Logger::addError($message, $context);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        return $instance->getDefaultDriver();
         }
-        
-        /**
-         * Adds a log record at the CRITICAL level.
+                    /**
+         * Set the default log driver name.
          *
-         * @param string $message The log message
-         * @param array $context The log context
-         * @return Boolean Whether the record has been processed
+         * @param string $name
+         * @return void 
          * @static 
          */ 
-        public static function critical($message, $context = array())
+        public static function setDefaultDriver($name)
         {
-            return \Monolog\Logger::addCritical($message, $context);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        $instance->setDefaultDriver($name);
         }
-        
-        /**
-         * Adds a log record at the ALERT level.
+                    /**
+         * Register a custom driver creator Closure.
          *
-         * @param string $message The log message
-         * @param array $context The log context
-         * @return Boolean Whether the record has been processed
+         * @param string $driver
+         * @param \Closure $callback
+         * @return \Illuminate\Log\LogManager 
          * @static 
          */ 
-        public static function alert($message, $context = array())
+        public static function extend($driver, $callback)
         {
-            return \Monolog\Logger::addAlert($message, $context);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        return $instance->extend($driver, $callback);
         }
-        
-        /**
-         * Adds a log record at the EMERGENCY level.
+                    /**
+         * Unset the given channel instance.
          *
-         * @param string $message The log message
-         * @param array $context The log context
-         * @return Boolean Whether the record has been processed
+         * @param string|null $driver
+         * @return \Illuminate\Log\LogManager 
          * @static 
          */ 
-        public static function emergency($message, $context = array())
+        public static function forgetChannel($driver = null)
         {
-            return \Monolog\Logger::addEmergency($message, $context);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        return $instance->forgetChannel($driver);
         }
-        
-        /**
-         * Create a new, on-demand aggregate logger instance.
+                    /**
+         * System is unusable.
          *
-         * @param array $channels
-         * @param string|null $channel
-         * @return \Psr\Log\LoggerInterface 
+         * @param string $message
+         * @param array $context
+         * @return void 
          * @static 
          */ 
-        public static function stack($channels, $channel = null)
+        public static function emergency($message, $context = [])
         {
-            return \Illuminate\Log\LogManager::stack($channels, $channel);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        $instance->emergency($message, $context);
         }
-        
-        /**
-         * Get a log channel instance.
+                    /**
+         * Action must be taken immediately.
+         * 
+         * Example: Entire website down, database unavailable, etc. This should
+         * trigger the SMS alerts and wake you up.
          *
-         * @param string|null $channel
-         * @return mixed 
+         * @param string $message
+         * @param array $context
+         * @return void 
          * @static 
          */ 
-        public static function channel($channel = null)
+        public static function alert($message, $context = [])
         {
-            return \Illuminate\Log\LogManager::channel($channel);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        $instance->alert($message, $context);
         }
-        
-        /**
-         * Get a log driver instance.
+                    /**
+         * Critical conditions.
+         * 
+         * Example: Application component unavailable, unexpected exception.
          *
-         * @param string|null $driver
-         * @return mixed 
+         * @param string $message
+         * @param array $context
+         * @return void 
          * @static 
          */ 
-        public static function driver($driver = null)
+        public static function critical($message, $context = [])
         {
-            return \Illuminate\Log\LogManager::driver($driver);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        $instance->critical($message, $context);
         }
-        
-        /**
-         * Get the default log driver name.
+                    /**
+         * Runtime errors that do not require immediate action but should typically
+         * be logged and monitored.
          *
-         * @return string 
+         * @param string $message
+         * @param array $context
+         * @return void 
          * @static 
          */ 
-        public static function getDefaultDriver()
+        public static function error($message, $context = [])
         {
-            return \Illuminate\Log\LogManager::getDefaultDriver();
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        $instance->error($message, $context);
         }
-        
-        /**
-         * Set the default log driver name.
+                    /**
+         * Exceptional occurrences that are not errors.
+         * 
+         * Example: Use of deprecated APIs, poor use of an API, undesirable things
+         * that are not necessarily wrong.
          *
-         * @param string $name
+         * @param string $message
+         * @param array $context
          * @return void 
          * @static 
          */ 
-        public static function setDefaultDriver($name)
+        public static function warning($message, $context = [])
         {
-            \Illuminate\Log\LogManager::setDefaultDriver($name);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        $instance->warning($message, $context);
         }
-        
-        /**
-         * Register a custom driver creator Closure.
+                    /**
+         * Normal but significant events.
          *
-         * @param string $driver
-         * @param \Closure $callback
-         * @return $this 
+         * @param string $message
+         * @param array $context
+         * @return void 
          * @static 
          */ 
-        public static function extend($driver, $callback)
+        public static function notice($message, $context = [])
+        {
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        $instance->notice($message, $context);
+        }
+                    /**
+         * Interesting events.
+         * 
+         * Example: User logs in, SQL logs.
+         *
+         * @param string $message
+         * @param array $context
+         * @return void 
+         * @static 
+         */ 
+        public static function info($message, $context = [])
+        {
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        $instance->info($message, $context);
+        }
+                    /**
+         * Detailed debug information.
+         *
+         * @param string $message
+         * @param array $context
+         * @return void 
+         * @static 
+         */ 
+        public static function debug($message, $context = [])
         {
-            return \Illuminate\Log\LogManager::extend($driver, $callback);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        $instance->debug($message, $context);
         }
-        
-        /**
+                    /**
          * Logs with an arbitrary level.
          *
          * @param mixed $level
@@ -6022,21 +6282,21 @@ namespace Illuminate\Support\Facades {
          * @return void 
          * @static 
          */ 
-        public static function log($level, $message, $context = array())
+        public static function log($level, $message, $context = [])
         {
-            \Illuminate\Log\LogManager::log($level, $message, $context);
+                        /** @var \Illuminate\Log\LogManager $instance */
+                        $instance->log($level, $message, $context);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Mail\Mailer
+     * @see \Illuminate\Support\Testing\Fakes\MailFake
      */ 
-    class Mail {
-        
-        /**
+        class Mail {
+                    /**
          * Set the global from address and name.
          *
          * @param string $address
@@ -6046,10 +6306,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function alwaysFrom($address, $name = null)
         {
-            \Illuminate\Mail\Mailer::alwaysFrom($address, $name);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        $instance->alwaysFrom($address, $name);
         }
-        
-        /**
+                    /**
          * Set the global reply-to address and name.
          *
          * @param string $address
@@ -6059,10 +6319,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function alwaysReplyTo($address, $name = null)
         {
-            \Illuminate\Mail\Mailer::alwaysReplyTo($address, $name);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        $instance->alwaysReplyTo($address, $name);
         }
-        
-        /**
+                    /**
          * Set the global to address and name.
          *
          * @param string $address
@@ -6072,10 +6332,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function alwaysTo($address, $name = null)
         {
-            \Illuminate\Mail\Mailer::alwaysTo($address, $name);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        $instance->alwaysTo($address, $name);
         }
-        
-        /**
+                    /**
          * Begin the process of mailing a mailable class instance.
          *
          * @param mixed $users
@@ -6084,10 +6344,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function to($users)
         {
-            return \Illuminate\Mail\Mailer::to($users);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        return $instance->to($users);
+        }
+                    /**
+         * Begin the process of mailing a mailable class instance.
+         *
+         * @param mixed $users
+         * @return \Illuminate\Mail\PendingMail 
+         * @static 
+         */ 
+        public static function cc($users)
+        {
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        return $instance->cc($users);
         }
-        
-        /**
+                    /**
          * Begin the process of mailing a mailable class instance.
          *
          * @param mixed $users
@@ -6096,10 +6368,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function bcc($users)
         {
-            return \Illuminate\Mail\Mailer::bcc($users);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        return $instance->bcc($users);
         }
-        
-        /**
+                    /**
          * Send a new message with only an HTML part.
          *
          * @param string $html
@@ -6109,11 +6381,11 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function html($html, $callback)
         {
-            \Illuminate\Mail\Mailer::html($html, $callback);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        $instance->html($html, $callback);
         }
-        
-        /**
-         * Send a new message when only a raw text part.
+                    /**
+         * Send a new message with only a raw text part.
          *
          * @param string $text
          * @param mixed $callback
@@ -6122,11 +6394,11 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function raw($text, $callback)
         {
-            \Illuminate\Mail\Mailer::raw($text, $callback);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        $instance->raw($text, $callback);
         }
-        
-        /**
-         * Send a new message when only a plain part.
+                    /**
+         * Send a new message with only a plain part.
          *
          * @param string $view
          * @param array $data
@@ -6136,10 +6408,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function plain($view, $data, $callback)
         {
-            \Illuminate\Mail\Mailer::plain($view, $data, $callback);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        $instance->plain($view, $data, $callback);
         }
-        
-        /**
+                    /**
          * Render the given message as a view.
          *
          * @param string|array $view
@@ -6147,106 +6419,108 @@ namespace Illuminate\Support\Facades {
          * @return string 
          * @static 
          */ 
-        public static function render($view, $data = array())
+        public static function render($view, $data = [])
         {
-            return \Illuminate\Mail\Mailer::render($view, $data);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        return $instance->render($view, $data);
         }
-        
-        /**
+                    /**
          * Send a new message using a view.
          *
-         * @param string|array|\Illuminate\Mail\MailableContract $view
+         * @param \Illuminate\Contracts\Mail\Mailable|string|array $view
          * @param array $data
-         * @param \Closure|string $callback
+         * @param \Closure|string|null $callback
          * @return void 
          * @static 
          */ 
-        public static function send($view, $data = array(), $callback = null)
+        public static function send($view, $data = [], $callback = null)
         {
-            \Illuminate\Mail\Mailer::send($view, $data, $callback);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        $instance->send($view, $data, $callback);
         }
-        
-        /**
+                    /**
          * Queue a new e-mail message for sending.
          *
-         * @param string|array|\Illuminate\Mail\MailableContract $view
+         * @param \Illuminate\Contracts\Mail\Mailable|string|array $view
          * @param string|null $queue
          * @return mixed 
+         * @throws \InvalidArgumentException
          * @static 
          */ 
         public static function queue($view, $queue = null)
         {
-            return \Illuminate\Mail\Mailer::queue($view, $queue);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        return $instance->queue($view, $queue);
         }
-        
-        /**
+                    /**
          * Queue a new e-mail message for sending on the given queue.
          *
          * @param string $queue
-         * @param string|array $view
+         * @param \Illuminate\Contracts\Mail\Mailable $view
          * @return mixed 
          * @static 
          */ 
         public static function onQueue($queue, $view)
         {
-            return \Illuminate\Mail\Mailer::onQueue($queue, $view);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        return $instance->onQueue($queue, $view);
         }
-        
-        /**
+                    /**
          * Queue a new e-mail message for sending on the given queue.
          * 
          * This method didn't match rest of framework's "onQueue" phrasing. Added "onQueue".
          *
          * @param string $queue
-         * @param string|array $view
+         * @param \Illuminate\Contracts\Mail\Mailable $view
          * @return mixed 
          * @static 
          */ 
         public static function queueOn($queue, $view)
         {
-            return \Illuminate\Mail\Mailer::queueOn($queue, $view);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        return $instance->queueOn($queue, $view);
         }
-        
-        /**
+                    /**
          * Queue a new e-mail message for sending after (n) seconds.
          *
          * @param \DateTimeInterface|\DateInterval|int $delay
-         * @param string|array|\Illuminate\Mail\MailableContract $view
+         * @param \Illuminate\Contracts\Mail\Mailable $view
          * @param string|null $queue
          * @return mixed 
+         * @throws \InvalidArgumentException
          * @static 
          */ 
         public static function later($delay, $view, $queue = null)
         {
-            return \Illuminate\Mail\Mailer::later($delay, $view, $queue);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        return $instance->later($delay, $view, $queue);
         }
-        
-        /**
+                    /**
          * Queue a new e-mail message for sending after (n) seconds on the given queue.
          *
          * @param string $queue
          * @param \DateTimeInterface|\DateInterval|int $delay
-         * @param string|array $view
+         * @param \Illuminate\Contracts\Mail\Mailable $view
          * @return mixed 
          * @static 
          */ 
         public static function laterOn($queue, $delay, $view)
         {
-            return \Illuminate\Mail\Mailer::laterOn($queue, $delay, $view);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        return $instance->laterOn($queue, $delay, $view);
         }
-        
-        /**
-         * Get the view factory instance.
+                    /**
+         * Get the array of failed recipients.
          *
-         * @return \Illuminate\Contracts\View\Factory 
+         * @return array 
          * @static 
          */ 
-        public static function getViewFactory()
+        public static function failures()
         {
-            return \Illuminate\Mail\Mailer::getViewFactory();
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        return $instance->failures();
         }
-        
-        /**
+                    /**
          * Get the Swift Mailer instance.
          *
          * @return \Swift_Mailer 
@@ -6254,21 +6528,21 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getSwiftMailer()
         {
-            return \Illuminate\Mail\Mailer::getSwiftMailer();
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        return $instance->getSwiftMailer();
         }
-        
-        /**
-         * Get the array of failed recipients.
+                    /**
+         * Get the view factory instance.
          *
-         * @return array 
+         * @return \Illuminate\Contracts\View\Factory 
          * @static 
          */ 
-        public static function failures()
+        public static function getViewFactory()
         {
-            return \Illuminate\Mail\Mailer::failures();
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        return $instance->getViewFactory();
         }
-        
-        /**
+                    /**
          * Set the Swift Mailer instance.
          *
          * @param \Swift_Mailer $swift
@@ -6277,22 +6551,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setSwiftMailer($swift)
         {
-            \Illuminate\Mail\Mailer::setSwiftMailer($swift);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        $instance->setSwiftMailer($swift);
         }
-        
-        /**
+                    /**
          * Set the queue manager instance.
          *
          * @param \Illuminate\Contracts\Queue\Factory $queue
-         * @return $this 
+         * @return \Illuminate\Mail\Mailer 
          * @static 
          */ 
         public static function setQueue($queue)
         {
-            return \Illuminate\Mail\Mailer::setQueue($queue);
+                        /** @var \Illuminate\Mail\Mailer $instance */
+                        return $instance->setQueue($queue);
         }
-        
-        /**
+                    /**
          * Register a custom macro.
          *
          * @param string $name
@@ -6302,23 +6576,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function macro($name, $macro)
         {
-            \Illuminate\Mail\Mailer::macro($name, $macro);
+                        \Illuminate\Mail\Mailer::macro($name, $macro);
         }
-        
-        /**
+                    /**
          * Mix another object into the class.
          *
          * @param object $mixin
+         * @param bool $replace
          * @return void 
          * @throws \ReflectionException
          * @static 
          */ 
-        public static function mixin($mixin)
+        public static function mixin($mixin, $replace = true)
         {
-            \Illuminate\Mail\Mailer::mixin($mixin);
+                        \Illuminate\Mail\Mailer::mixin($mixin, $replace);
         }
-        
-        /**
+                    /**
          * Checks if macro is registered.
          *
          * @param string $name
@@ -6327,10 +6600,9 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasMacro($name)
         {
-            return \Illuminate\Mail\Mailer::hasMacro($name);
+                        return \Illuminate\Mail\Mailer::hasMacro($name);
         }
-        
-        /**
+                    /**
          * Assert if a mailable was sent based on a truth-test callback.
          *
          * @param string $mailable
@@ -6340,10 +6612,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertSent($mailable, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\MailFake::assertSent($mailable, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */
+                        $instance->assertSent($mailable, $callback);
         }
-        
-        /**
+                    /**
          * Determine if a mailable was not sent based on a truth-test callback.
          *
          * @param string $mailable
@@ -6353,10 +6625,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertNotSent($mailable, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\MailFake::assertNotSent($mailable, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */
+                        $instance->assertNotSent($mailable, $callback);
         }
-        
-        /**
+                    /**
          * Assert that no mailables were sent.
          *
          * @return void 
@@ -6364,10 +6636,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertNothingSent()
         {
-            \Illuminate\Support\Testing\Fakes\MailFake::assertNothingSent();
+                        /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */
+                        $instance->assertNothingSent();
         }
-        
-        /**
+                    /**
          * Assert if a mailable was queued based on a truth-test callback.
          *
          * @param string $mailable
@@ -6377,10 +6649,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertQueued($mailable, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\MailFake::assertQueued($mailable, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */
+                        $instance->assertQueued($mailable, $callback);
         }
-        
-        /**
+                    /**
          * Determine if a mailable was not queued based on a truth-test callback.
          *
          * @param string $mailable
@@ -6390,10 +6662,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertNotQueued($mailable, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\MailFake::assertNotQueued($mailable, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */
+                        $instance->assertNotQueued($mailable, $callback);
         }
-        
-        /**
+                    /**
          * Assert that no mailables were queued.
          *
          * @return void 
@@ -6401,10 +6673,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertNothingQueued()
         {
-            \Illuminate\Support\Testing\Fakes\MailFake::assertNothingQueued();
+                        /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */
+                        $instance->assertNothingQueued();
         }
-        
-        /**
+                    /**
          * Get all of the mailables matching a truth-test callback.
          *
          * @param string $mailable
@@ -6414,10 +6686,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function sent($mailable, $callback = null)
         {
-            return \Illuminate\Support\Testing\Fakes\MailFake::sent($mailable, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */
+                        return $instance->sent($mailable, $callback);
         }
-        
-        /**
+                    /**
          * Determine if the given mailable has been sent.
          *
          * @param string $mailable
@@ -6426,10 +6698,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasSent($mailable)
         {
-            return \Illuminate\Support\Testing\Fakes\MailFake::hasSent($mailable);
+                        /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */
+                        return $instance->hasSent($mailable);
         }
-        
-        /**
+                    /**
          * Get all of the queued mailables matching a truth-test callback.
          *
          * @param string $mailable
@@ -6439,10 +6711,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function queued($mailable, $callback = null)
         {
-            return \Illuminate\Support\Testing\Fakes\MailFake::queued($mailable, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */
+                        return $instance->queued($mailable, $callback);
         }
-        
-        /**
+                    /**
          * Determine if the given mailable has been queued.
          *
          * @param string $mailable
@@ -6451,19 +6723,18 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasQueued($mailable)
         {
-            return \Illuminate\Support\Testing\Fakes\MailFake::hasQueued($mailable);
+                        /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */
+                        return $instance->hasQueued($mailable);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Notifications\ChannelManager
      */ 
-    class Notification {
-        
-        /**
+        class Notification {
+                    /**
          * Send the given notification to the given notifiable entities.
          *
          * @param \Illuminate\Support\Collection|array|mixed $notifiables
@@ -6473,10 +6744,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function send($notifiables, $notification)
         {
-            \Illuminate\Notifications\ChannelManager::send($notifiables, $notification);
+                        /** @var \Illuminate\Notifications\ChannelManager $instance */
+                        $instance->send($notifiables, $notification);
         }
-        
-        /**
+                    /**
          * Send the given notification immediately.
          *
          * @param \Illuminate\Support\Collection|array|mixed $notifiables
@@ -6487,10 +6758,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function sendNow($notifiables, $notification, $channels = null)
         {
-            \Illuminate\Notifications\ChannelManager::sendNow($notifiables, $notification, $channels);
+                        /** @var \Illuminate\Notifications\ChannelManager $instance */
+                        $instance->sendNow($notifiables, $notification, $channels);
         }
-        
-        /**
+                    /**
          * Get a channel instance.
          *
          * @param string|null $name
@@ -6499,10 +6770,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function channel($name = null)
         {
-            return \Illuminate\Notifications\ChannelManager::channel($name);
+                        /** @var \Illuminate\Notifications\ChannelManager $instance */
+                        return $instance->channel($name);
         }
-        
-        /**
+                    /**
          * Get the default channel driver name.
          *
          * @return string 
@@ -6510,10 +6781,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDefaultDriver()
         {
-            return \Illuminate\Notifications\ChannelManager::getDefaultDriver();
+                        /** @var \Illuminate\Notifications\ChannelManager $instance */
+                        return $instance->getDefaultDriver();
         }
-        
-        /**
+                    /**
          * Get the default channel driver name.
          *
          * @return string 
@@ -6521,10 +6792,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function deliversVia()
         {
-            return \Illuminate\Notifications\ChannelManager::deliversVia();
+                        /** @var \Illuminate\Notifications\ChannelManager $instance */
+                        return $instance->deliversVia();
         }
-        
-        /**
+                    /**
          * Set the default channel driver name.
          *
          * @param string $channel
@@ -6533,10 +6804,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function deliverVia($channel)
         {
-            \Illuminate\Notifications\ChannelManager::deliverVia($channel);
+                        /** @var \Illuminate\Notifications\ChannelManager $instance */
+                        $instance->deliverVia($channel);
+        }
+                    /**
+         * Set the locale of notifications.
+         *
+         * @param string $locale
+         * @return \Illuminate\Notifications\ChannelManager 
+         * @static 
+         */ 
+        public static function locale($locale)
+        {
+                        /** @var \Illuminate\Notifications\ChannelManager $instance */
+                        return $instance->locale($locale);
         }
-        
-        /**
+                    /**
          * Get a driver instance.
          *
          * @param string $driver
@@ -6545,52 +6828,50 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function driver($driver = null)
-        {
-            //Method inherited from \Illuminate\Support\Manager            
-            return \Illuminate\Notifications\ChannelManager::driver($driver);
+        {            //Method inherited from \Illuminate\Support\Manager         
+                        /** @var \Illuminate\Notifications\ChannelManager $instance */
+                        return $instance->driver($driver);
         }
-        
-        /**
+                    /**
          * Register a custom driver creator Closure.
          *
          * @param string $driver
          * @param \Closure $callback
-         * @return $this 
+         * @return \Illuminate\Notifications\ChannelManager 
          * @static 
          */ 
         public static function extend($driver, $callback)
-        {
-            //Method inherited from \Illuminate\Support\Manager            
-            return \Illuminate\Notifications\ChannelManager::extend($driver, $callback);
+        {            //Method inherited from \Illuminate\Support\Manager         
+                        /** @var \Illuminate\Notifications\ChannelManager $instance */
+                        return $instance->extend($driver, $callback);
         }
-        
-        /**
+                    /**
          * Get all of the created "drivers".
          *
          * @return array 
          * @static 
          */ 
         public static function getDrivers()
-        {
-            //Method inherited from \Illuminate\Support\Manager            
-            return \Illuminate\Notifications\ChannelManager::getDrivers();
+        {            //Method inherited from \Illuminate\Support\Manager         
+                        /** @var \Illuminate\Notifications\ChannelManager $instance */
+                        return $instance->getDrivers();
         }
-        
-        /**
+                    /**
          * Assert if a notification was sent based on a truth-test callback.
          *
          * @param mixed $notifiable
          * @param string $notification
          * @param callable|null $callback
          * @return void 
+         * @throws \Exception
          * @static 
          */ 
         public static function assertSentTo($notifiable, $notification, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\NotificationFake::assertSentTo($notifiable, $notification, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */
+                        $instance->assertSentTo($notifiable, $notification, $callback);
         }
-        
-        /**
+                    /**
          * Assert if a notification was sent a number of times.
          *
          * @param mixed $notifiable
@@ -6601,24 +6882,25 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertSentToTimes($notifiable, $notification, $times = 1)
         {
-            \Illuminate\Support\Testing\Fakes\NotificationFake::assertSentToTimes($notifiable, $notification, $times);
+                        /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */
+                        $instance->assertSentToTimes($notifiable, $notification, $times);
         }
-        
-        /**
+                    /**
          * Determine if a notification was sent based on a truth-test callback.
          *
          * @param mixed $notifiable
          * @param string $notification
          * @param callable|null $callback
          * @return void 
+         * @throws \Exception
          * @static 
          */ 
         public static function assertNotSentTo($notifiable, $notification, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\NotificationFake::assertNotSentTo($notifiable, $notification, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */
+                        $instance->assertNotSentTo($notifiable, $notification, $callback);
         }
-        
-        /**
+                    /**
          * Assert that no notifications were sent.
          *
          * @return void 
@@ -6626,10 +6908,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertNothingSent()
         {
-            \Illuminate\Support\Testing\Fakes\NotificationFake::assertNothingSent();
+                        /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */
+                        $instance->assertNothingSent();
         }
-        
-        /**
+                    /**
          * Assert the total amount of times a notification was sent.
          *
          * @param int $expectedCount
@@ -6639,10 +6921,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertTimesSent($expectedCount, $notification)
         {
-            \Illuminate\Support\Testing\Fakes\NotificationFake::assertTimesSent($expectedCount, $notification);
+                        /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */
+                        $instance->assertTimesSent($expectedCount, $notification);
         }
-        
-        /**
+                    /**
          * Get all of the notifications matching a truth-test callback.
          *
          * @param mixed $notifiable
@@ -6653,10 +6935,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function sent($notifiable, $notification, $callback = null)
         {
-            return \Illuminate\Support\Testing\Fakes\NotificationFake::sent($notifiable, $notification, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */
+                        return $instance->sent($notifiable, $notification, $callback);
         }
-        
-        /**
+                    /**
          * Determine if there are more notifications left to inspect.
          *
          * @param mixed $notifiable
@@ -6666,23 +6948,56 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasSent($notifiable, $notification)
         {
-            return \Illuminate\Support\Testing\Fakes\NotificationFake::hasSent($notifiable, $notification);
+                        /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */
+                        return $instance->hasSent($notifiable, $notification);
+        }
+                    /**
+         * Register a custom macro.
+         *
+         * @param string $name
+         * @param object|callable $macro
+         * @return void 
+         * @static 
+         */ 
+        public static function macro($name, $macro)
+        {
+                        \Illuminate\Support\Testing\Fakes\NotificationFake::macro($name, $macro);
+        }
+                    /**
+         * Mix another object into the class.
+         *
+         * @param object $mixin
+         * @param bool $replace
+         * @return void 
+         * @throws \ReflectionException
+         * @static 
+         */ 
+        public static function mixin($mixin, $replace = true)
+        {
+                        \Illuminate\Support\Testing\Fakes\NotificationFake::mixin($mixin, $replace);
+        }
+                    /**
+         * Checks if macro is registered.
+         *
+         * @param string $name
+         * @return bool 
+         * @static 
+         */ 
+        public static function hasMacro($name)
+        {
+                        return \Illuminate\Support\Testing\Fakes\NotificationFake::hasMacro($name);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @method static string sendResetLink(array $credentials)
      * @method static mixed reset(array $credentials, \Closure $callback)
-     * @method static void validator(\Closure $callback)
-     * @method static bool validateNewPassword(array $credentials)
      * @see \Illuminate\Auth\Passwords\PasswordBroker
      */ 
-    class Password {
-        
-        /**
+        class Password {
+                    /**
          * Attempt to get the broker from the local cache.
          *
          * @param string|null $name
@@ -6691,10 +7006,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function broker($name = null)
         {
-            return \Illuminate\Auth\Passwords\PasswordBrokerManager::broker($name);
+                        /** @var \Illuminate\Auth\Passwords\PasswordBrokerManager $instance */
+                        return $instance->broker($name);
         }
-        
-        /**
+                    /**
          * Get the default password broker name.
          *
          * @return string 
@@ -6702,10 +7017,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDefaultDriver()
         {
-            return \Illuminate\Auth\Passwords\PasswordBrokerManager::getDefaultDriver();
+                        /** @var \Illuminate\Auth\Passwords\PasswordBrokerManager $instance */
+                        return $instance->getDefaultDriver();
         }
-        
-        /**
+                    /**
          * Set the default password broker name.
          *
          * @param string $name
@@ -6714,20 +7029,19 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setDefaultDriver($name)
         {
-            \Illuminate\Auth\Passwords\PasswordBrokerManager::setDefaultDriver($name);
+                        /** @var \Illuminate\Auth\Passwords\PasswordBrokerManager $instance */
+                        $instance->setDefaultDriver($name);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Queue\QueueManager
      * @see \Illuminate\Queue\Queue
      */ 
-    class Queue {
-        
-        /**
+        class Queue {
+                    /**
          * Register an event listener for the before job event.
          *
          * @param mixed $callback
@@ -6736,10 +7050,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function before($callback)
         {
-            \Illuminate\Queue\QueueManager::before($callback);
+                        /** @var \Illuminate\Queue\QueueManager $instance */
+                        $instance->before($callback);
         }
-        
-        /**
+                    /**
          * Register an event listener for the after job event.
          *
          * @param mixed $callback
@@ -6748,10 +7062,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function after($callback)
         {
-            \Illuminate\Queue\QueueManager::after($callback);
+                        /** @var \Illuminate\Queue\QueueManager $instance */
+                        $instance->after($callback);
         }
-        
-        /**
+                    /**
          * Register an event listener for the exception occurred job event.
          *
          * @param mixed $callback
@@ -6760,10 +7074,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function exceptionOccurred($callback)
         {
-            \Illuminate\Queue\QueueManager::exceptionOccurred($callback);
+                        /** @var \Illuminate\Queue\QueueManager $instance */
+                        $instance->exceptionOccurred($callback);
         }
-        
-        /**
+                    /**
          * Register an event listener for the daemon queue loop.
          *
          * @param mixed $callback
@@ -6772,10 +7086,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function looping($callback)
         {
-            \Illuminate\Queue\QueueManager::looping($callback);
+                        /** @var \Illuminate\Queue\QueueManager $instance */
+                        $instance->looping($callback);
         }
-        
-        /**
+                    /**
          * Register an event listener for the failed job event.
          *
          * @param mixed $callback
@@ -6784,10 +7098,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function failing($callback)
         {
-            \Illuminate\Queue\QueueManager::failing($callback);
+                        /** @var \Illuminate\Queue\QueueManager $instance */
+                        $instance->failing($callback);
         }
-        
-        /**
+                    /**
          * Register an event listener for the daemon queue stopping.
          *
          * @param mixed $callback
@@ -6796,34 +7110,34 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function stopping($callback)
         {
-            \Illuminate\Queue\QueueManager::stopping($callback);
+                        /** @var \Illuminate\Queue\QueueManager $instance */
+                        $instance->stopping($callback);
         }
-        
-        /**
+                    /**
          * Determine if the driver is connected.
          *
-         * @param string $name
+         * @param string|null $name
          * @return bool 
          * @static 
          */ 
         public static function connected($name = null)
         {
-            return \Illuminate\Queue\QueueManager::connected($name);
+                        /** @var \Illuminate\Queue\QueueManager $instance */
+                        return $instance->connected($name);
         }
-        
-        /**
+                    /**
          * Resolve a queue connection instance.
          *
-         * @param string $name
+         * @param string|null $name
          * @return \Illuminate\Contracts\Queue\Queue 
          * @static 
          */ 
         public static function connection($name = null)
         {
-            return \Illuminate\Queue\QueueManager::connection($name);
+                        /** @var \Illuminate\Queue\QueueManager $instance */
+                        return $instance->connection($name);
         }
-        
-        /**
+                    /**
          * Add a queue connection resolver.
          *
          * @param string $driver
@@ -6833,10 +7147,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function extend($driver, $resolver)
         {
-            \Illuminate\Queue\QueueManager::extend($driver, $resolver);
+                        /** @var \Illuminate\Queue\QueueManager $instance */
+                        $instance->extend($driver, $resolver);
         }
-        
-        /**
+                    /**
          * Add a queue connection resolver.
          *
          * @param string $driver
@@ -6846,10 +7160,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function addConnector($driver, $resolver)
         {
-            \Illuminate\Queue\QueueManager::addConnector($driver, $resolver);
+                        /** @var \Illuminate\Queue\QueueManager $instance */
+                        $instance->addConnector($driver, $resolver);
         }
-        
-        /**
+                    /**
          * Get the name of the default queue connection.
          *
          * @return string 
@@ -6857,10 +7171,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDefaultDriver()
         {
-            return \Illuminate\Queue\QueueManager::getDefaultDriver();
+                        /** @var \Illuminate\Queue\QueueManager $instance */
+                        return $instance->getDefaultDriver();
         }
-        
-        /**
+                    /**
          * Set the name of the default queue connection.
          *
          * @param string $name
@@ -6869,33 +7183,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setDefaultDriver($name)
         {
-            \Illuminate\Queue\QueueManager::setDefaultDriver($name);
+                        /** @var \Illuminate\Queue\QueueManager $instance */
+                        $instance->setDefaultDriver($name);
         }
-        
-        /**
+                    /**
          * Get the full name for the given connection.
          *
-         * @param string $connection
+         * @param string|null $connection
          * @return string 
          * @static 
          */ 
         public static function getName($connection = null)
         {
-            return \Illuminate\Queue\QueueManager::getName($connection);
-        }
-        
-        /**
-         * Determine if the application is in maintenance mode.
-         *
-         * @return bool 
-         * @static 
-         */ 
-        public static function isDownForMaintenance()
-        {
-            return \Illuminate\Queue\QueueManager::isDownForMaintenance();
+                        /** @var \Illuminate\Queue\QueueManager $instance */
+                        return $instance->getName($connection);
         }
-        
-        /**
+                    /**
          * Assert if a job was pushed based on a truth-test callback.
          *
          * @param string $job
@@ -6905,10 +7208,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertPushed($job, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\QueueFake::assertPushed($job, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        $instance->assertPushed($job, $callback);
         }
-        
-        /**
+                    /**
          * Assert if a job was pushed based on a truth-test callback.
          *
          * @param string $queue
@@ -6919,10 +7222,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertPushedOn($queue, $job, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\QueueFake::assertPushedOn($queue, $job, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        $instance->assertPushedOn($queue, $job, $callback);
         }
-        
-        /**
+                    /**
          * Assert if a job was pushed with chained jobs based on a truth-test callback.
          *
          * @param string $job
@@ -6931,12 +7234,25 @@ namespace Illuminate\Support\Facades {
          * @return void 
          * @static 
          */ 
-        public static function assertPushedWithChain($job, $expectedChain = array(), $callback = null)
+        public static function assertPushedWithChain($job, $expectedChain = [], $callback = null)
+        {
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        $instance->assertPushedWithChain($job, $expectedChain, $callback);
+        }
+                    /**
+         * Assert if a job was pushed with an empty chain based on a truth-test callback.
+         *
+         * @param string $job
+         * @param callable|null $callback
+         * @return void 
+         * @static 
+         */ 
+        public static function assertPushedWithoutChain($job, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\QueueFake::assertPushedWithChain($job, $expectedChain, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        $instance->assertPushedWithoutChain($job, $callback);
         }
-        
-        /**
+                    /**
          * Determine if a job was pushed based on a truth-test callback.
          *
          * @param string $job
@@ -6946,10 +7262,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertNotPushed($job, $callback = null)
         {
-            \Illuminate\Support\Testing\Fakes\QueueFake::assertNotPushed($job, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        $instance->assertNotPushed($job, $callback);
         }
-        
-        /**
+                    /**
          * Assert that no jobs were pushed.
          *
          * @return void 
@@ -6957,10 +7273,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assertNothingPushed()
         {
-            \Illuminate\Support\Testing\Fakes\QueueFake::assertNothingPushed();
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        $instance->assertNothingPushed();
         }
-        
-        /**
+                    /**
          * Get all of the jobs matching a truth-test callback.
          *
          * @param string $job
@@ -6970,10 +7286,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function pushed($job, $callback = null)
         {
-            return \Illuminate\Support\Testing\Fakes\QueueFake::pushed($job, $callback);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        return $instance->pushed($job, $callback);
         }
-        
-        /**
+                    /**
          * Determine if there are any stored jobs for a given class.
          *
          * @param string $job
@@ -6982,65 +7298,65 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasPushed($job)
         {
-            return \Illuminate\Support\Testing\Fakes\QueueFake::hasPushed($job);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        return $instance->hasPushed($job);
         }
-        
-        /**
+                    /**
          * Get the size of the queue.
          *
-         * @param string $queue
+         * @param string|null $queue
          * @return int 
          * @static 
          */ 
         public static function size($queue = null)
         {
-            return \Illuminate\Support\Testing\Fakes\QueueFake::size($queue);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        return $instance->size($queue);
         }
-        
-        /**
+                    /**
          * Push a new job onto the queue.
          *
          * @param string $job
          * @param mixed $data
-         * @param string $queue
+         * @param string|null $queue
          * @return mixed 
          * @static 
          */ 
         public static function push($job, $data = '', $queue = null)
         {
-            return \Illuminate\Support\Testing\Fakes\QueueFake::push($job, $data, $queue);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        return $instance->push($job, $data, $queue);
         }
-        
-        /**
+                    /**
          * Push a raw payload onto the queue.
          *
          * @param string $payload
-         * @param string $queue
+         * @param string|null $queue
          * @param array $options
          * @return mixed 
          * @static 
          */ 
-        public static function pushRaw($payload, $queue = null, $options = array())
+        public static function pushRaw($payload, $queue = null, $options = [])
         {
-            return \Illuminate\Support\Testing\Fakes\QueueFake::pushRaw($payload, $queue, $options);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        return $instance->pushRaw($payload, $queue, $options);
         }
-        
-        /**
+                    /**
          * Push a new job onto the queue after a delay.
          *
-         * @param \DateTime|int $delay
+         * @param \DateTimeInterface|\DateInterval|int $delay
          * @param string $job
          * @param mixed $data
-         * @param string $queue
+         * @param string|null $queue
          * @return mixed 
          * @static 
          */ 
         public static function later($delay, $job, $data = '', $queue = null)
         {
-            return \Illuminate\Support\Testing\Fakes\QueueFake::later($delay, $job, $data, $queue);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        return $instance->later($delay, $job, $data, $queue);
         }
-        
-        /**
+                    /**
          * Push a new job onto the queue.
          *
          * @param string $queue
@@ -7051,14 +7367,14 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function pushOn($queue, $job, $data = '')
         {
-            return \Illuminate\Support\Testing\Fakes\QueueFake::pushOn($queue, $job, $data);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        return $instance->pushOn($queue, $job, $data);
         }
-        
-        /**
+                    /**
          * Push a new job onto the queue after a delay.
          *
          * @param string $queue
-         * @param \DateTime|int $delay
+         * @param \DateTimeInterface|\DateInterval|int $delay
          * @param string $job
          * @param mixed $data
          * @return mixed 
@@ -7066,36 +7382,47 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function laterOn($queue, $delay, $job, $data = '')
         {
-            return \Illuminate\Support\Testing\Fakes\QueueFake::laterOn($queue, $delay, $job, $data);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        return $instance->laterOn($queue, $delay, $job, $data);
         }
-        
-        /**
+                    /**
          * Pop the next job off of the queue.
          *
-         * @param string $queue
+         * @param string|null $queue
          * @return \Illuminate\Contracts\Queue\Job|null 
          * @static 
          */ 
         public static function pop($queue = null)
         {
-            return \Illuminate\Support\Testing\Fakes\QueueFake::pop($queue);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        return $instance->pop($queue);
         }
-        
-        /**
+                    /**
          * Push an array of jobs onto the queue.
          *
          * @param array $jobs
          * @param mixed $data
-         * @param string $queue
+         * @param string|null $queue
          * @return mixed 
          * @static 
          */ 
         public static function bulk($jobs, $data = '', $queue = null)
         {
-            return \Illuminate\Support\Testing\Fakes\QueueFake::bulk($jobs, $data, $queue);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        return $instance->bulk($jobs, $data, $queue);
         }
-        
-        /**
+                    /**
+         * Get the jobs that have been pushed.
+         *
+         * @return array 
+         * @static 
+         */ 
+        public static function pushedJobs()
+        {
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        return $instance->pushedJobs();
+        }
+                    /**
          * Get the connection name for the queue.
          *
          * @return string 
@@ -7103,22 +7430,34 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getConnectionName()
         {
-            return \Illuminate\Support\Testing\Fakes\QueueFake::getConnectionName();
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        return $instance->getConnectionName();
         }
-        
-        /**
+                    /**
          * Set the connection name for the queue.
          *
          * @param string $name
-         * @return $this 
+         * @return \Illuminate\Support\Testing\Fakes\QueueFake 
          * @static 
          */ 
         public static function setConnectionName($name)
         {
-            return \Illuminate\Support\Testing\Fakes\QueueFake::setConnectionName($name);
+                        /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */
+                        return $instance->setConnectionName($name);
+        }
+                    /**
+         * Get the retry delay for an object-based queue handler.
+         *
+         * @param mixed $job
+         * @return mixed 
+         * @static 
+         */ 
+        public static function getJobRetryDelay($job)
+        {            //Method inherited from \Illuminate\Queue\Queue         
+                        /** @var \Illuminate\Queue\SyncQueue $instance */
+                        return $instance->getJobRetryDelay($job);
         }
-        
-        /**
+                    /**
          * Get the expiration timestamp for an object-based queue handler.
          *
          * @param mixed $job
@@ -7126,12 +7465,22 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getJobExpiration($job)
-        {
-            //Method inherited from \Illuminate\Queue\Queue            
-            return \Illuminate\Queue\SyncQueue::getJobExpiration($job);
+        {            //Method inherited from \Illuminate\Queue\Queue         
+                        /** @var \Illuminate\Queue\SyncQueue $instance */
+                        return $instance->getJobExpiration($job);
+        }
+                    /**
+         * Register a callback to be executed when creating job payloads.
+         *
+         * @param callable $callback
+         * @return void 
+         * @static 
+         */ 
+        public static function createPayloadUsing($callback)
+        {            //Method inherited from \Illuminate\Queue\Queue         
+                        \Illuminate\Queue\SyncQueue::createPayloadUsing($callback);
         }
-        
-        /**
+                    /**
          * Set the IoC container instance.
          *
          * @param \Illuminate\Container\Container $container
@@ -7139,21 +7488,19 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function setContainer($container)
-        {
-            //Method inherited from \Illuminate\Queue\Queue            
-            \Illuminate\Queue\SyncQueue::setContainer($container);
+        {            //Method inherited from \Illuminate\Queue\Queue         
+                        /** @var \Illuminate\Queue\SyncQueue $instance */
+                        $instance->setContainer($container);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Routing\Redirector
      */ 
-    class Redirect {
-        
-        /**
+        class Redirect {
+                    /**
          * Create a new redirect response to the "home" route.
          *
          * @param int $status
@@ -7162,10 +7509,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function home($status = 302)
         {
-            return \Illuminate\Routing\Redirector::home($status);
+                        /** @var \Illuminate\Routing\Redirector $instance */
+                        return $instance->home($status);
         }
-        
-        /**
+                    /**
          * Create a new redirect response to the previous location.
          *
          * @param int $status
@@ -7174,12 +7521,12 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function back($status = 302, $headers = array(), $fallback = false)
+        public static function back($status = 302, $headers = [], $fallback = false)
         {
-            return \Illuminate\Routing\Redirector::back($status, $headers, $fallback);
+                        /** @var \Illuminate\Routing\Redirector $instance */
+                        return $instance->back($status, $headers, $fallback);
         }
-        
-        /**
+                    /**
          * Create a new redirect response to the current URI.
          *
          * @param int $status
@@ -7187,57 +7534,69 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function refresh($status = 302, $headers = array())
+        public static function refresh($status = 302, $headers = [])
         {
-            return \Illuminate\Routing\Redirector::refresh($status, $headers);
+                        /** @var \Illuminate\Routing\Redirector $instance */
+                        return $instance->refresh($status, $headers);
         }
-        
-        /**
+                    /**
          * Create a new redirect response, while putting the current URL in the session.
          *
          * @param string $path
          * @param int $status
          * @param array $headers
-         * @param bool $secure
+         * @param bool|null $secure
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function guest($path, $status = 302, $headers = array(), $secure = null)
+        public static function guest($path, $status = 302, $headers = [], $secure = null)
         {
-            return \Illuminate\Routing\Redirector::guest($path, $status, $headers, $secure);
+                        /** @var \Illuminate\Routing\Redirector $instance */
+                        return $instance->guest($path, $status, $headers, $secure);
         }
-        
-        /**
+                    /**
          * Create a new redirect response to the previously intended location.
          *
          * @param string $default
          * @param int $status
          * @param array $headers
-         * @param bool $secure
+         * @param bool|null $secure
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function intended($default = '/', $status = 302, $headers = array(), $secure = null)
+        public static function intended($default = '/', $status = 302, $headers = [], $secure = null)
+        {
+                        /** @var \Illuminate\Routing\Redirector $instance */
+                        return $instance->intended($default, $status, $headers, $secure);
+        }
+                    /**
+         * Set the intended url.
+         *
+         * @param string $url
+         * @return void 
+         * @static 
+         */ 
+        public static function setIntendedUrl($url)
         {
-            return \Illuminate\Routing\Redirector::intended($default, $status, $headers, $secure);
+                        /** @var \Illuminate\Routing\Redirector $instance */
+                        $instance->setIntendedUrl($url);
         }
-        
-        /**
+                    /**
          * Create a new redirect response to the given path.
          *
          * @param string $path
          * @param int $status
          * @param array $headers
-         * @param bool $secure
+         * @param bool|null $secure
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function to($path, $status = 302, $headers = array(), $secure = null)
+        public static function to($path, $status = 302, $headers = [], $secure = null)
         {
-            return \Illuminate\Routing\Redirector::to($path, $status, $headers, $secure);
+                        /** @var \Illuminate\Routing\Redirector $instance */
+                        return $instance->to($path, $status, $headers, $secure);
         }
-        
-        /**
+                    /**
          * Create a new redirect response to an external URL (no validation).
          *
          * @param string $path
@@ -7246,12 +7605,12 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function away($path, $status = 302, $headers = array())
+        public static function away($path, $status = 302, $headers = [])
         {
-            return \Illuminate\Routing\Redirector::away($path, $status, $headers);
+                        /** @var \Illuminate\Routing\Redirector $instance */
+                        return $instance->away($path, $status, $headers);
         }
-        
-        /**
+                    /**
          * Create a new redirect response to the given HTTPS path.
          *
          * @param string $path
@@ -7260,12 +7619,12 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function secure($path, $status = 302, $headers = array())
+        public static function secure($path, $status = 302, $headers = [])
         {
-            return \Illuminate\Routing\Redirector::secure($path, $status, $headers);
+                        /** @var \Illuminate\Routing\Redirector $instance */
+                        return $instance->secure($path, $status, $headers);
         }
-        
-        /**
+                    /**
          * Create a new redirect response to a named route.
          *
          * @param string $route
@@ -7275,27 +7634,27 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function route($route, $parameters = array(), $status = 302, $headers = array())
+        public static function route($route, $parameters = [], $status = 302, $headers = [])
         {
-            return \Illuminate\Routing\Redirector::route($route, $parameters, $status, $headers);
+                        /** @var \Illuminate\Routing\Redirector $instance */
+                        return $instance->route($route, $parameters, $status, $headers);
         }
-        
-        /**
+                    /**
          * Create a new redirect response to a controller action.
          *
-         * @param string $action
+         * @param string|array $action
          * @param mixed $parameters
          * @param int $status
          * @param array $headers
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function action($action, $parameters = array(), $status = 302, $headers = array())
+        public static function action($action, $parameters = [], $status = 302, $headers = [])
         {
-            return \Illuminate\Routing\Redirector::action($action, $parameters, $status, $headers);
+                        /** @var \Illuminate\Routing\Redirector $instance */
+                        return $instance->action($action, $parameters, $status, $headers);
         }
-        
-        /**
+                    /**
          * Get the URL generator instance.
          *
          * @return \Illuminate\Routing\UrlGenerator 
@@ -7303,10 +7662,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getUrlGenerator()
         {
-            return \Illuminate\Routing\Redirector::getUrlGenerator();
+                        /** @var \Illuminate\Routing\Redirector $instance */
+                        return $instance->getUrlGenerator();
         }
-        
-        /**
+                    /**
          * Set the active session store.
          *
          * @param \Illuminate\Session\Store $session
@@ -7315,10 +7674,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setSession($session)
         {
-            \Illuminate\Routing\Redirector::setSession($session);
+                        /** @var \Illuminate\Routing\Redirector $instance */
+                        $instance->setSession($session);
         }
-        
-        /**
+                    /**
          * Register a custom macro.
          *
          * @param string $name
@@ -7328,23 +7687,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function macro($name, $macro)
         {
-            \Illuminate\Routing\Redirector::macro($name, $macro);
+                        \Illuminate\Routing\Redirector::macro($name, $macro);
         }
-        
-        /**
+                    /**
          * Mix another object into the class.
          *
          * @param object $mixin
+         * @param bool $replace
          * @return void 
          * @throws \ReflectionException
          * @static 
          */ 
-        public static function mixin($mixin)
+        public static function mixin($mixin, $replace = true)
         {
-            \Illuminate\Routing\Redirector::mixin($mixin);
+                        \Illuminate\Routing\Redirector::mixin($mixin, $replace);
         }
-        
-        /**
+                    /**
          * Checks if macro is registered.
          *
          * @param string $name
@@ -7353,19 +7711,18 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasMacro($name)
         {
-            return \Illuminate\Routing\Redirector::hasMacro($name);
+                        return \Illuminate\Routing\Redirector::hasMacro($name);
         }
          
     }
-
-    /**
+            /**
      * 
      *
+     * @method static mixed filterFiles(mixed $files)
      * @see \Illuminate\Http\Request
      */ 
-    class Request {
-        
-        /**
+        class Request {
+                    /**
          * Create a new Illuminate HTTP request from server variables.
          *
          * @return static 
@@ -7373,21 +7730,20 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function capture()
         {
-            return \Illuminate\Http\Request::capture();
+                        return \Illuminate\Http\Request::capture();
         }
-        
-        /**
+                    /**
          * Return the Request instance.
          *
-         * @return $this 
+         * @return \Illuminate\Http\Request 
          * @static 
          */ 
         public static function instance()
         {
-            return \Illuminate\Http\Request::instance();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->instance();
         }
-        
-        /**
+                    /**
          * Get the request method.
          *
          * @return string 
@@ -7395,10 +7751,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function method()
         {
-            return \Illuminate\Http\Request::method();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->method();
         }
-        
-        /**
+                    /**
          * Get the root URL for the application.
          *
          * @return string 
@@ -7406,10 +7762,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function root()
         {
-            return \Illuminate\Http\Request::root();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->root();
         }
-        
-        /**
+                    /**
          * Get the URL (no query string) for the request.
          *
          * @return string 
@@ -7417,10 +7773,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function url()
         {
-            return \Illuminate\Http\Request::url();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->url();
         }
-        
-        /**
+                    /**
          * Get the full URL for the request.
          *
          * @return string 
@@ -7428,10 +7784,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function fullUrl()
         {
-            return \Illuminate\Http\Request::fullUrl();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->fullUrl();
         }
-        
-        /**
+                    /**
          * Get the full URL for the request with the added query string parameters.
          *
          * @param array $query
@@ -7440,10 +7796,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function fullUrlWithQuery($query)
         {
-            return \Illuminate\Http\Request::fullUrlWithQuery($query);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->fullUrlWithQuery($query);
         }
-        
-        /**
+                    /**
          * Get the current path info for the request.
          *
          * @return string 
@@ -7451,10 +7807,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function path()
         {
-            return \Illuminate\Http\Request::path();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->path();
         }
-        
-        /**
+                    /**
          * Get the current decoded path info for the request.
          *
          * @return string 
@@ -7462,10 +7818,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function decodedPath()
         {
-            return \Illuminate\Http\Request::decodedPath();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->decodedPath();
         }
-        
-        /**
+                    /**
          * Get a segment from the URI (1 based index).
          *
          * @param int $index
@@ -7475,10 +7831,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function segment($index, $default = null)
         {
-            return \Illuminate\Http\Request::segment($index, $default);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->segment($index, $default);
         }
-        
-        /**
+                    /**
          * Get all of the segments for the request path.
          *
          * @return array 
@@ -7486,46 +7842,46 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function segments()
         {
-            return \Illuminate\Http\Request::segments();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->segments();
         }
-        
-        /**
+                    /**
          * Determine if the current request URI matches a pattern.
          *
          * @param mixed $patterns
          * @return bool 
          * @static 
          */ 
-        public static function is($patterns = null)
+        public static function is(...$patterns)
         {
-            return \Illuminate\Http\Request::is($patterns);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->is(...$patterns);
         }
-        
-        /**
+                    /**
          * Determine if the route name matches a given pattern.
          *
          * @param mixed $patterns
          * @return bool 
          * @static 
          */ 
-        public static function routeIs($patterns = null)
+        public static function routeIs(...$patterns)
         {
-            return \Illuminate\Http\Request::routeIs($patterns);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->routeIs(...$patterns);
         }
-        
-        /**
+                    /**
          * Determine if the current request URL and query string matches a pattern.
          *
          * @param mixed $patterns
          * @return bool 
          * @static 
          */ 
-        public static function fullUrlIs($patterns = null)
+        public static function fullUrlIs(...$patterns)
         {
-            return \Illuminate\Http\Request::fullUrlIs($patterns);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->fullUrlIs(...$patterns);
         }
-        
-        /**
+                    /**
          * Determine if the request is the result of an AJAX call.
          *
          * @return bool 
@@ -7533,10 +7889,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function ajax()
         {
-            return \Illuminate\Http\Request::ajax();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->ajax();
         }
-        
-        /**
+                    /**
          * Determine if the request is the result of an PJAX call.
          *
          * @return bool 
@@ -7544,10 +7900,21 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function pjax()
         {
-            return \Illuminate\Http\Request::pjax();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->pjax();
+        }
+                    /**
+         * Determine if the request is the result of an prefetch call.
+         *
+         * @return bool 
+         * @static 
+         */ 
+        public static function prefetch()
+        {
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->prefetch();
         }
-        
-        /**
+                    /**
          * Determine if the request is over HTTPS.
          *
          * @return bool 
@@ -7555,21 +7922,21 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function secure()
         {
-            return \Illuminate\Http\Request::secure();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->secure();
         }
-        
-        /**
+                    /**
          * Get the client IP address.
          *
-         * @return string 
+         * @return string|null 
          * @static 
          */ 
         public static function ip()
         {
-            return \Illuminate\Http\Request::ip();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->ip();
         }
-        
-        /**
+                    /**
          * Get the client IP addresses.
          *
          * @return array 
@@ -7577,21 +7944,21 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function ips()
         {
-            return \Illuminate\Http\Request::ips();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->ips();
         }
-        
-        /**
+                    /**
          * Get the client user agent.
          *
-         * @return string 
+         * @return string|null 
          * @static 
          */ 
         public static function userAgent()
         {
-            return \Illuminate\Http\Request::userAgent();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->userAgent();
         }
-        
-        /**
+                    /**
          * Merge new input into the current request's input array.
          *
          * @param array $input
@@ -7600,10 +7967,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function merge($input)
         {
-            return \Illuminate\Http\Request::merge($input);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->merge($input);
         }
-        
-        /**
+                    /**
          * Replace the input for the current request.
          *
          * @param array $input
@@ -7612,10 +7979,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function replace($input)
         {
-            return \Illuminate\Http\Request::replace($input);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->replace($input);
         }
-        
-        /**
+                    /**
          * This method belongs to Symfony HttpFoundation and is not usually needed when using Laravel.
          * 
          * Instead, you may use the "input" method.
@@ -7627,23 +7994,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function get($key, $default = null)
         {
-            return \Illuminate\Http\Request::get($key, $default);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->get($key, $default);
         }
-        
-        /**
+                    /**
          * Get the JSON payload for the request.
          *
-         * @param string $key
+         * @param string|null $key
          * @param mixed $default
          * @return \Symfony\Component\HttpFoundation\ParameterBag|mixed 
          * @static 
          */ 
         public static function json($key = null, $default = null)
         {
-            return \Illuminate\Http\Request::json($key, $default);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->json($key, $default);
         }
-        
-        /**
+                    /**
          * Create a new request instance from the given Laravel request.
          *
          * @param \Illuminate\Http\Request $from
@@ -7653,22 +8020,20 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function createFrom($from, $to = null)
         {
-            return \Illuminate\Http\Request::createFrom($from, $to);
+                        return \Illuminate\Http\Request::createFrom($from, $to);
         }
-        
-        /**
+                    /**
          * Create an Illuminate request from a Symfony instance.
          *
          * @param \Symfony\Component\HttpFoundation\Request $request
-         * @return \Illuminate\Http\Request 
+         * @return static 
          * @static 
          */ 
         public static function createFromBase($request)
         {
-            return \Illuminate\Http\Request::createFromBase($request);
+                        return \Illuminate\Http\Request::createFromBase($request);
         }
-        
-        /**
+                    /**
          * Clones a request and overrides some of its parameters.
          *
          * @param array $query The GET parameters
@@ -7682,10 +8047,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function duplicate($query = null, $request = null, $attributes = null, $cookies = null, $files = null, $server = null)
         {
-            return \Illuminate\Http\Request::duplicate($query, $request, $attributes, $cookies, $files, $server);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->duplicate($query, $request, $attributes, $cookies, $files, $server);
         }
-        
-        /**
+                    /**
          * Get the session associated with the request.
          *
          * @return \Illuminate\Session\Store 
@@ -7694,10 +8059,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function session()
         {
-            return \Illuminate\Http\Request::session();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->session();
         }
-        
-        /**
+                    /**
          * Get the session associated with the request.
          *
          * @return \Illuminate\Session\Store|null 
@@ -7705,10 +8070,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getSession()
         {
-            return \Illuminate\Http\Request::getSession();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getSession();
         }
-        
-        /**
+                    /**
          * Set the session instance on the request.
          *
          * @param \Illuminate\Contracts\Session\Session $session
@@ -7717,10 +8082,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setLaravelSession($session)
         {
-            \Illuminate\Http\Request::setLaravelSession($session);
+                        /** @var \Illuminate\Http\Request $instance */
+                        $instance->setLaravelSession($session);
         }
-        
-        /**
+                    /**
          * Get the user making the request.
          *
          * @param string|null $guard
@@ -7729,22 +8094,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function user($guard = null)
         {
-            return \Illuminate\Http\Request::user($guard);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->user($guard);
         }
-        
-        /**
+                    /**
          * Get the route handling the request.
          *
          * @param string|null $param
-         * @return \Illuminate\Routing\Route|object|string 
+         * @param mixed $default
+         * @return \Illuminate\Routing\Route|object|string|null 
          * @static 
          */ 
-        public static function route($param = null)
+        public static function route($param = null, $default = null)
         {
-            return \Illuminate\Http\Request::route($param);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->route($param, $default);
         }
-        
-        /**
+                    /**
          * Get a unique fingerprint for the request / route / IP address.
          *
          * @return string 
@@ -7753,22 +8119,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function fingerprint()
         {
-            return \Illuminate\Http\Request::fingerprint();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->fingerprint();
         }
-        
-        /**
+                    /**
          * Set the JSON payload for the request.
          *
          * @param \Symfony\Component\HttpFoundation\ParameterBag $json
-         * @return $this 
+         * @return \Illuminate\Http\Request 
          * @static 
          */ 
         public static function setJson($json)
         {
-            return \Illuminate\Http\Request::setJson($json);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->setJson($json);
         }
-        
-        /**
+                    /**
          * Get the user resolver callback.
          *
          * @return \Closure 
@@ -7776,22 +8142,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getUserResolver()
         {
-            return \Illuminate\Http\Request::getUserResolver();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getUserResolver();
         }
-        
-        /**
+                    /**
          * Set the user resolver callback.
          *
          * @param \Closure $callback
-         * @return $this 
+         * @return \Illuminate\Http\Request 
          * @static 
          */ 
         public static function setUserResolver($callback)
         {
-            return \Illuminate\Http\Request::setUserResolver($callback);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->setUserResolver($callback);
         }
-        
-        /**
+                    /**
          * Get the route resolver callback.
          *
          * @return \Closure 
@@ -7799,22 +8165,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getRouteResolver()
         {
-            return \Illuminate\Http\Request::getRouteResolver();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getRouteResolver();
         }
-        
-        /**
+                    /**
          * Set the route resolver callback.
          *
          * @param \Closure $callback
-         * @return $this 
+         * @return \Illuminate\Http\Request 
          * @static 
          */ 
         public static function setRouteResolver($callback)
         {
-            return \Illuminate\Http\Request::setRouteResolver($callback);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->setRouteResolver($callback);
         }
-        
-        /**
+                    /**
          * Get all of the input and files for the request.
          *
          * @return array 
@@ -7822,10 +8188,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function toArray()
         {
-            return \Illuminate\Http\Request::toArray();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->toArray();
         }
-        
-        /**
+                    /**
          * Determine if the given offset exists.
          *
          * @param string $offset
@@ -7834,10 +8200,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function offsetExists($offset)
         {
-            return \Illuminate\Http\Request::offsetExists($offset);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->offsetExists($offset);
         }
-        
-        /**
+                    /**
          * Get the value at the given offset.
          *
          * @param string $offset
@@ -7846,10 +8212,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function offsetGet($offset)
         {
-            return \Illuminate\Http\Request::offsetGet($offset);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->offsetGet($offset);
         }
-        
-        /**
+                    /**
          * Set the value at the given offset.
          *
          * @param string $offset
@@ -7859,10 +8225,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function offsetSet($offset, $value)
         {
-            \Illuminate\Http\Request::offsetSet($offset, $value);
+                        /** @var \Illuminate\Http\Request $instance */
+                        $instance->offsetSet($offset, $value);
         }
-        
-        /**
+                    /**
          * Remove the value at the given offset.
          *
          * @param string $offset
@@ -7871,10 +8237,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function offsetUnset($offset)
         {
-            \Illuminate\Http\Request::offsetUnset($offset);
+                        /** @var \Illuminate\Http\Request $instance */
+                        $instance->offsetUnset($offset);
         }
-        
-        /**
+                    /**
          * Sets the parameters for this request.
          * 
          * This method also re-initializes all properties.
@@ -7888,25 +8254,22 @@ namespace Illuminate\Support\Facades {
          * @param string|resource|null $content The raw body data
          * @static 
          */ 
-        public static function initialize($query = array(), $request = array(), $attributes = array(), $cookies = array(), $files = array(), $server = array(), $content = null)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::initialize($query, $request, $attributes, $cookies, $files, $server, $content);
+        public static function initialize($query = [], $request = [], $attributes = [], $cookies = [], $files = [], $server = [], $content = null)
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->initialize($query, $request, $attributes, $cookies, $files, $server, $content);
         }
-        
-        /**
+                    /**
          * Creates a new request with values from PHP's super globals.
          *
          * @return static 
          * @static 
          */ 
         public static function createFromGlobals()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::createFromGlobals();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        return \Illuminate\Http\Request::createFromGlobals();
         }
-        
-        /**
+                    /**
          * Creates a Request based on a given URI and configuration.
          * 
          * The information contained in the URI always take precedence
@@ -7922,13 +8285,11 @@ namespace Illuminate\Support\Facades {
          * @return static 
          * @static 
          */ 
-        public static function create($uri, $method = 'GET', $parameters = array(), $cookies = array(), $files = array(), $server = array(), $content = null)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::create($uri, $method, $parameters, $cookies, $files, $server, $content);
+        public static function create($uri, $method = 'GET', $parameters = [], $cookies = [], $files = [], $server = [], $content = null)
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        return \Illuminate\Http\Request::create($uri, $method, $parameters, $cookies, $files, $server, $content);
         }
-        
-        /**
+                    /**
          * Sets a callable able to create a Request instance.
          * 
          * This is mainly useful when you need to override the Request class
@@ -7939,12 +8300,10 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function setFactory($callable)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::setFactory($callable);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        return \Illuminate\Http\Request::setFactory($callable);
         }
-        
-        /**
+                    /**
          * Overrides the PHP global variables according to this request instance.
          * 
          * It overrides $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE.
@@ -7953,52 +8312,44 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function overrideGlobals()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::overrideGlobals();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->overrideGlobals();
         }
-        
-        /**
+                    /**
          * Sets a list of trusted proxies.
          * 
          * You should only list the reverse proxies that you manage directly.
          *
-         * @param array $proxies A list of trusted proxies
+         * @param array $proxies A list of trusted proxies, the string 'REMOTE_ADDR' will be replaced with $_SERVER['REMOTE_ADDR']
          * @param int $trustedHeaderSet A bit field of Request::HEADER_*, to set which headers to trust from your proxies
-         * @throws \InvalidArgumentException When $trustedHeaderSet is invalid
          * @static 
          */ 
         public static function setTrustedProxies($proxies, $trustedHeaderSet)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::setTrustedProxies($proxies, $trustedHeaderSet);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        return \Illuminate\Http\Request::setTrustedProxies($proxies, $trustedHeaderSet);
         }
-        
-        /**
+                    /**
          * Gets the list of trusted proxies.
          *
          * @return array An array of trusted proxies
          * @static 
          */ 
         public static function getTrustedProxies()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getTrustedProxies();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        return \Illuminate\Http\Request::getTrustedProxies();
         }
-        
-        /**
+                    /**
          * Gets the set of trusted headers from trusted proxies.
          *
          * @return int A bit field of Request::HEADER_* that defines which headers are trusted from your proxies
          * @static 
          */ 
         public static function getTrustedHeaderSet()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getTrustedHeaderSet();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        return \Illuminate\Http\Request::getTrustedHeaderSet();
         }
-        
-        /**
+                    /**
          * Sets a list of trusted host patterns.
          * 
          * You should only list the hosts you manage using regexs.
@@ -8007,24 +8358,20 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function setTrustedHosts($hostPatterns)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::setTrustedHosts($hostPatterns);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        return \Illuminate\Http\Request::setTrustedHosts($hostPatterns);
         }
-        
-        /**
+                    /**
          * Gets the list of trusted host patterns.
          *
          * @return array An array of trusted host patterns
          * @static 
          */ 
         public static function getTrustedHosts()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getTrustedHosts();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        return \Illuminate\Http\Request::getTrustedHosts();
         }
-        
-        /**
+                    /**
          * Normalizes a query string.
          * 
          * It builds a normalized query string, where keys/value pairs are alphabetized,
@@ -8035,12 +8382,10 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function normalizeQueryString($qs)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::normalizeQueryString($qs);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        return \Illuminate\Http\Request::normalizeQueryString($qs);
         }
-        
-        /**
+                    /**
          * Enables support for the _method request parameter to determine the intended HTTP method.
          * 
          * Be warned that enabling this feature might lead to CSRF issues in your code.
@@ -8054,24 +8399,20 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function enableHttpMethodParameterOverride()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::enableHttpMethodParameterOverride();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        return \Illuminate\Http\Request::enableHttpMethodParameterOverride();
         }
-        
-        /**
+                    /**
          * Checks whether support for the _method request parameter is enabled.
          *
          * @return bool True when the _method request parameter is enabled, false otherwise
          * @static 
          */ 
         public static function getHttpMethodParameterOverride()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getHttpMethodParameterOverride();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        return \Illuminate\Http\Request::getHttpMethodParameterOverride();
         }
-        
-        /**
+                    /**
          * Whether the request contains a Session which was started in one of the
          * previous requests.
          *
@@ -8079,12 +8420,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function hasPreviousSession()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::hasPreviousSession();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->hasPreviousSession();
         }
-        
-        /**
+                    /**
          * Whether the request contains a Session object.
          * 
          * This method does not give any information about the state of the session object,
@@ -8095,36 +8435,32 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function hasSession()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::hasSession();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->hasSession();
         }
-        
-        /**
-         * Sets the Session.
+                    /**
+         * 
          *
-         * @param \Symfony\Component\HttpFoundation\SessionInterface $session The Session
          * @static 
          */ 
         public static function setSession($session)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::setSession($session);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->setSession($session);
         }
-        
-        /**
+                    /**
          * 
          *
          * @internal 
          * @static 
          */ 
         public static function setSessionFactory($factory)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::setSessionFactory($factory);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->setSessionFactory($factory);
         }
-        
-        /**
+                    /**
          * Returns the client IP addresses.
          * 
          * In the returned array the most trusted IP address is first, and the
@@ -8138,12 +8474,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getClientIps()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getClientIps();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getClientIps();
         }
-        
-        /**
+                    /**
          * Returns the client IP address.
          * 
          * This method can read the client IP address from the "X-Forwarded-For" header
@@ -8151,31 +8486,33 @@ namespace Illuminate\Support\Facades {
          * header value is a comma+space separated list of IP addresses, the left-most
          * being the original client, and each successive proxy that passed the request
          * adding the IP address where it received the request from.
+         * 
+         * If your reverse proxy uses a different header name than "X-Forwarded-For",
+         * ("Client-Ip" for instance), configure it via the $trustedHeaderSet
+         * argument of the Request::setTrustedProxies() method instead.
          *
          * @return string|null The client IP address
          * @see getClientIps()
-         * @see http://en.wikipedia.org/wiki/X-Forwarded-For
+         * @see https://wikipedia.org/wiki/X-Forwarded-For
          * @static 
          */ 
         public static function getClientIp()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getClientIp();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getClientIp();
         }
-        
-        /**
+                    /**
          * Returns current script name.
          *
          * @return string 
          * @static 
          */ 
         public static function getScriptName()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getScriptName();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getScriptName();
         }
-        
-        /**
+                    /**
          * Returns the path being requested relative to the executed script.
          * 
          * The path info always starts with a /.
@@ -8191,12 +8528,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getPathInfo()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getPathInfo();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getPathInfo();
         }
-        
-        /**
+                    /**
          * Returns the root path from which this request is executed.
          * 
          * Suppose that an index.php file instantiates this request object:
@@ -8210,12 +8546,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getBasePath()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getBasePath();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getBasePath();
         }
-        
-        /**
+                    /**
          * Returns the root URL from which this request is executed.
          * 
          * The base URL never ends with a /.
@@ -8227,24 +8562,22 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getBaseUrl()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getBaseUrl();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getBaseUrl();
         }
-        
-        /**
+                    /**
          * Gets the request's scheme.
          *
          * @return string 
          * @static 
          */ 
         public static function getScheme()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getScheme();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getScheme();
         }
-        
-        /**
+                    /**
          * Returns the port on which the request is made.
          * 
          * This method can read the client port from the "X-Forwarded-Port" header
@@ -8256,48 +8589,44 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getPort()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getPort();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getPort();
         }
-        
-        /**
+                    /**
          * Returns the user.
          *
          * @return string|null 
          * @static 
          */ 
         public static function getUser()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getUser();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getUser();
         }
-        
-        /**
+                    /**
          * Returns the password.
          *
          * @return string|null 
          * @static 
          */ 
         public static function getPassword()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getPassword();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getPassword();
         }
-        
-        /**
+                    /**
          * Gets the user info.
          *
          * @return string A user name and, optionally, scheme-specific information about how to gain authorization to access the server
          * @static 
          */ 
         public static function getUserInfo()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getUserInfo();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getUserInfo();
         }
-        
-        /**
+                    /**
          * Returns the HTTP host being requested.
          * 
          * The port name will be appended to the host if it's non-standard.
@@ -8306,24 +8635,22 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getHttpHost()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getHttpHost();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getHttpHost();
         }
-        
-        /**
+                    /**
          * Returns the requested URI (path and query string).
          *
          * @return string The raw URI (i.e. not URI decoded)
          * @static 
          */ 
         public static function getRequestUri()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getRequestUri();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getRequestUri();
         }
-        
-        /**
+                    /**
          * Gets the scheme and HTTP host.
          * 
          * If the URL was called with basic authentication, the user
@@ -8333,12 +8660,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getSchemeAndHttpHost()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getSchemeAndHttpHost();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getSchemeAndHttpHost();
         }
-        
-        /**
+                    /**
          * Generates a normalized URI (URL) for the Request.
          *
          * @return string A normalized URI (URL) for the Request
@@ -8346,12 +8672,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getUri()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getUri();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getUri();
         }
-        
-        /**
+                    /**
          * Generates a normalized URI for the given path.
          *
          * @param string $path A path to use instead of the current one
@@ -8359,12 +8684,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getUriForPath($path)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getUriForPath($path);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getUriForPath($path);
         }
-        
-        /**
+                    /**
          * Returns the path as relative reference from the current Request path.
          * 
          * Only the URIs path component (no schema, host etc.) is relevant and must be given.
@@ -8384,12 +8708,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getRelativeUriForPath($path)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getRelativeUriForPath($path);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getRelativeUriForPath($path);
         }
-        
-        /**
+                    /**
          * Generates the normalized query string for the Request.
          * 
          * It builds a normalized query string, where keys/value pairs are alphabetized
@@ -8399,12 +8722,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getQueryString()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getQueryString();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getQueryString();
         }
-        
-        /**
+                    /**
          * Checks whether the request is secure or not.
          * 
          * This method can read the client protocol from the "X-Forwarded-Proto" header
@@ -8416,12 +8738,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function isSecure()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::isSecure();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->isSecure();
         }
-        
-        /**
+                    /**
          * Returns the host name.
          * 
          * This method can read the client host name from the "X-Forwarded-Host" header
@@ -8434,24 +8755,22 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getHost()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getHost();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getHost();
         }
-        
-        /**
+                    /**
          * Sets the request method.
          *
          * @param string $method
          * @static 
          */ 
         public static function setMethod($method)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::setMethod($method);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->setMethod($method);
         }
-        
-        /**
+                    /**
          * Gets the request "intended" method.
          * 
          * If the X-HTTP-Method-Override header is set, and if the method is a POST,
@@ -8467,12 +8786,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getMethod()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getMethod();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getMethod();
         }
-        
-        /**
+                    /**
          * Gets the "real" request method.
          *
          * @return string The request method
@@ -8480,12 +8798,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getRealMethod()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getRealMethod();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getRealMethod();
         }
-        
-        /**
+                    /**
          * Gets the mime type associated with the format.
          *
          * @param string $format The format
@@ -8493,12 +8810,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getMimeType($format)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getMimeType($format);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getMimeType($format);
         }
-        
-        /**
+                    /**
          * Gets the mime types associated with the format.
          *
          * @param string $format The format
@@ -8506,12 +8822,10 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getMimeTypes($format)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getMimeTypes($format);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        return \Illuminate\Http\Request::getMimeTypes($format);
         }
-        
-        /**
+                    /**
          * Gets the format associated with the mime type.
          *
          * @param string $mimeType The associated mime type
@@ -8519,12 +8833,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getFormat($mimeType)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getFormat($mimeType);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getFormat($mimeType);
         }
-        
-        /**
+                    /**
          * Associates a format with mime types.
          *
          * @param string $format The format
@@ -8532,12 +8845,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function setFormat($format, $mimeTypes)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::setFormat($format, $mimeTypes);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->setFormat($format, $mimeTypes);
         }
-        
-        /**
+                    /**
          * Gets the request format.
          * 
          * Here is the process to determine the format:
@@ -8546,89 +8858,83 @@ namespace Illuminate\Support\Facades {
          *  * _format request attribute
          *  * $default
          *
-         * @param string $default The default format
-         * @return string The request format
+         * @see getPreferredFormat
+         * @param string|null $default The default format
+         * @return string|null The request format
          * @static 
          */ 
         public static function getRequestFormat($default = 'html')
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getRequestFormat($default);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getRequestFormat($default);
         }
-        
-        /**
+                    /**
          * Sets the request format.
          *
          * @param string $format The request format
          * @static 
          */ 
         public static function setRequestFormat($format)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::setRequestFormat($format);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->setRequestFormat($format);
         }
-        
-        /**
+                    /**
          * Gets the format associated with the request.
          *
          * @return string|null The format (null if no content type is present)
          * @static 
          */ 
         public static function getContentType()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getContentType();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getContentType();
         }
-        
-        /**
+                    /**
          * Sets the default locale.
          *
          * @param string $locale
          * @static 
          */ 
         public static function setDefaultLocale($locale)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::setDefaultLocale($locale);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->setDefaultLocale($locale);
         }
-        
-        /**
+                    /**
          * Get the default locale.
          *
          * @return string 
          * @static 
          */ 
         public static function getDefaultLocale()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getDefaultLocale();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getDefaultLocale();
         }
-        
-        /**
+                    /**
          * Sets the locale.
          *
          * @param string $locale
          * @static 
          */ 
         public static function setLocale($locale)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::setLocale($locale);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->setLocale($locale);
         }
-        
-        /**
+                    /**
          * Get the locale.
          *
          * @return string 
          * @static 
          */ 
         public static function getLocale()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getLocale();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getLocale();
         }
-        
-        /**
+                    /**
          * Checks if the request method is of specified type.
          *
          * @param string $method Uppercase request method (GET, POST etc)
@@ -8636,51 +8942,46 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function isMethod($method)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::isMethod($method);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->isMethod($method);
         }
-        
-        /**
+                    /**
          * Checks whether or not the method is safe.
          *
          * @see https://tools.ietf.org/html/rfc7231#section-4.2.1
-         * @param bool $andCacheable Adds the additional condition that the method should be cacheable. True by default.
          * @return bool 
          * @static 
          */ 
         public static function isMethodSafe()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::isMethodSafe();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->isMethodSafe();
         }
-        
-        /**
+                    /**
          * Checks whether or not the method is idempotent.
          *
          * @return bool 
          * @static 
          */ 
         public static function isMethodIdempotent()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::isMethodIdempotent();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->isMethodIdempotent();
         }
-        
-        /**
+                    /**
          * Checks whether the method is cacheable or not.
          *
          * @see https://tools.ietf.org/html/rfc7231#section-4.2.3
-         * @return bool 
+         * @return bool True for GET and HEAD, false otherwise
          * @static 
          */ 
         public static function isMethodCacheable()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::isMethodCacheable();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->isMethodCacheable();
         }
-        
-        /**
+                    /**
          * Returns the protocol version.
          * 
          * If the application is behind a proxy, the protocol version used in the
@@ -8693,127 +8994,131 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getProtocolVersion()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getProtocolVersion();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getProtocolVersion();
         }
-        
-        /**
+                    /**
          * Returns the request body content.
          *
          * @param bool $asResource If true, a resource will be returned
          * @return string|resource The request body content or a resource to read the body stream
-         * @throws \LogicException
          * @static 
          */ 
         public static function getContent($asResource = false)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getContent($asResource);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getContent($asResource);
         }
-        
-        /**
+                    /**
          * Gets the Etags.
          *
          * @return array The entity tags
          * @static 
          */ 
         public static function getETags()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getETags();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getETags();
         }
-        
-        /**
+                    /**
          * 
          *
          * @return bool 
          * @static 
          */ 
         public static function isNoCache()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::isNoCache();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->isNoCache();
+        }
+                    /**
+         * Gets the preferred format for the response by inspecting, in the following order:
+         *   * the request format set using setRequestFormat
+         *   * the values of the Accept HTTP header.
+         * 
+         * Note that if you use this method, you should send the "Vary: Accept" header
+         * in the response to prevent any issues with intermediary HTTP caches.
+         *
+         * @static 
+         */ 
+        public static function getPreferredFormat($default = 'html')
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getPreferredFormat($default);
         }
-        
-        /**
+                    /**
          * Returns the preferred language.
          *
-         * @param array $locales An array of ordered available locales
+         * @param string[] $locales An array of ordered available locales
          * @return string|null The preferred locale
          * @static 
          */ 
         public static function getPreferredLanguage($locales = null)
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getPreferredLanguage($locales);
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getPreferredLanguage($locales);
         }
-        
-        /**
+                    /**
          * Gets a list of languages acceptable by the client browser.
          *
          * @return array Languages ordered in the user browser preferences
          * @static 
          */ 
         public static function getLanguages()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getLanguages();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getLanguages();
         }
-        
-        /**
+                    /**
          * Gets a list of charsets acceptable by the client browser.
          *
          * @return array List of charsets in preferable order
          * @static 
          */ 
         public static function getCharsets()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getCharsets();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getCharsets();
         }
-        
-        /**
+                    /**
          * Gets a list of encodings acceptable by the client browser.
          *
          * @return array List of encodings in preferable order
          * @static 
          */ 
         public static function getEncodings()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getEncodings();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getEncodings();
         }
-        
-        /**
+                    /**
          * Gets a list of content types acceptable by the client browser.
          *
          * @return array List of content types in preferable order
          * @static 
          */ 
         public static function getAcceptableContentTypes()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::getAcceptableContentTypes();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->getAcceptableContentTypes();
         }
-        
-        /**
+                    /**
          * Returns true if the request is a XMLHttpRequest.
          * 
          * It works if your JavaScript library sets an X-Requested-With HTTP header.
          * It is known to work with common JavaScript frameworks:
          *
-         * @see http://en.wikipedia.org/wiki/List_of_Ajax_frameworks#JavaScript
+         * @see https://wikipedia.org/wiki/List_of_Ajax_frameworks#JavaScript
          * @return bool true if the request is an XMLHttpRequest, false otherwise
          * @static 
          */ 
         public static function isXmlHttpRequest()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::isXmlHttpRequest();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->isXmlHttpRequest();
         }
-        
-        /**
+                    /**
          * Indicates whether this request originated from a trusted proxy.
          * 
          * This can be useful to determine whether or not to trust the
@@ -8823,12 +9128,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function isFromTrustedProxy()
-        {
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::isFromTrustedProxy();
+        {            //Method inherited from \Symfony\Component\HttpFoundation\Request         
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->isFromTrustedProxy();
         }
-        
-        /**
+                    /**
          * Determine if the given content types match.
          *
          * @param string $actual
@@ -8838,10 +9142,9 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function matchesType($actual, $type)
         {
-            return \Illuminate\Http\Request::matchesType($actual, $type);
+                        return \Illuminate\Http\Request::matchesType($actual, $type);
         }
-        
-        /**
+                    /**
          * Determine if the request is sending JSON.
          *
          * @return bool 
@@ -8849,10 +9152,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function isJson()
         {
-            return \Illuminate\Http\Request::isJson();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->isJson();
         }
-        
-        /**
+                    /**
          * Determine if the current request probably expects a JSON response.
          *
          * @return bool 
@@ -8860,10 +9163,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function expectsJson()
         {
-            return \Illuminate\Http\Request::expectsJson();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->expectsJson();
         }
-        
-        /**
+                    /**
          * Determine if the current request is asking for JSON.
          *
          * @return bool 
@@ -8871,10 +9174,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function wantsJson()
         {
-            return \Illuminate\Http\Request::wantsJson();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->wantsJson();
         }
-        
-        /**
+                    /**
          * Determines whether the current requests accepts a given content type.
          *
          * @param string|array $contentTypes
@@ -8883,10 +9186,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function accepts($contentTypes)
         {
-            return \Illuminate\Http\Request::accepts($contentTypes);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->accepts($contentTypes);
         }
-        
-        /**
+                    /**
          * Return the most suitable content type from the given array based on content negotiation.
          *
          * @param string|array $contentTypes
@@ -8895,10 +9198,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function prefers($contentTypes)
         {
-            return \Illuminate\Http\Request::prefers($contentTypes);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->prefers($contentTypes);
         }
-        
-        /**
+                    /**
          * Determine if the current request accepts any content type.
          *
          * @return bool 
@@ -8906,10 +9209,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function acceptsAnyContentType()
         {
-            return \Illuminate\Http\Request::acceptsAnyContentType();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->acceptsAnyContentType();
         }
-        
-        /**
+                    /**
          * Determines whether a request accepts JSON.
          *
          * @return bool 
@@ -8917,10 +9220,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function acceptsJson()
         {
-            return \Illuminate\Http\Request::acceptsJson();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->acceptsJson();
         }
-        
-        /**
+                    /**
          * Determines whether a request accepts HTML.
          *
          * @return bool 
@@ -8928,10 +9231,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function acceptsHtml()
         {
-            return \Illuminate\Http\Request::acceptsHtml();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->acceptsHtml();
         }
-        
-        /**
+                    /**
          * Get the data format expected in the response.
          *
          * @param string $default
@@ -8940,23 +9243,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function format($default = 'html')
         {
-            return \Illuminate\Http\Request::format($default);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->format($default);
         }
-        
-        /**
+                    /**
          * Retrieve an old input item.
          *
-         * @param string $key
+         * @param string|null $key
          * @param string|array|null $default
          * @return string|array 
          * @static 
          */ 
         public static function old($key = null, $default = null)
         {
-            return \Illuminate\Http\Request::old($key, $default);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->old($key, $default);
         }
-        
-        /**
+                    /**
          * Flash the input for the current request to the session.
          *
          * @return void 
@@ -8964,10 +9267,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flash()
         {
-            \Illuminate\Http\Request::flash();
+                        /** @var \Illuminate\Http\Request $instance */
+                        $instance->flash();
         }
-        
-        /**
+                    /**
          * Flash only some of the input to the session.
          *
          * @param array|mixed $keys
@@ -8976,10 +9279,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flashOnly($keys)
         {
-            \Illuminate\Http\Request::flashOnly($keys);
+                        /** @var \Illuminate\Http\Request $instance */
+                        $instance->flashOnly($keys);
         }
-        
-        /**
+                    /**
          * Flash only some of the input to the session.
          *
          * @param array|mixed $keys
@@ -8988,10 +9291,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flashExcept($keys)
         {
-            \Illuminate\Http\Request::flashExcept($keys);
+                        /** @var \Illuminate\Http\Request $instance */
+                        $instance->flashExcept($keys);
         }
-        
-        /**
+                    /**
          * Flush all of the old input from the session.
          *
          * @return void 
@@ -8999,23 +9302,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flush()
         {
-            \Illuminate\Http\Request::flush();
+                        /** @var \Illuminate\Http\Request $instance */
+                        $instance->flush();
         }
-        
-        /**
+                    /**
          * Retrieve a server variable from the request.
          *
-         * @param string $key
+         * @param string|null $key
          * @param string|array|null $default
-         * @return string|array 
+         * @return string|array|null 
          * @static 
          */ 
         public static function server($key = null, $default = null)
         {
-            return \Illuminate\Http\Request::server($key, $default);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->server($key, $default);
         }
-        
-        /**
+                    /**
          * Determine if a header is set on the request.
          *
          * @param string $key
@@ -9024,23 +9327,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasHeader($key)
         {
-            return \Illuminate\Http\Request::hasHeader($key);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->hasHeader($key);
         }
-        
-        /**
+                    /**
          * Retrieve a header from the request.
          *
-         * @param string $key
+         * @param string|null $key
          * @param string|array|null $default
-         * @return string|array 
+         * @return string|array|null 
          * @static 
          */ 
         public static function header($key = null, $default = null)
         {
-            return \Illuminate\Http\Request::header($key, $default);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->header($key, $default);
         }
-        
-        /**
+                    /**
          * Get the bearer token from the request headers.
          *
          * @return string|null 
@@ -9048,10 +9351,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function bearerToken()
         {
-            return \Illuminate\Http\Request::bearerToken();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->bearerToken();
         }
-        
-        /**
+                    /**
          * Determine if the request contains a given input item key.
          *
          * @param string|array $key
@@ -9060,10 +9363,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function exists($key)
         {
-            return \Illuminate\Http\Request::exists($key);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->exists($key);
         }
-        
-        /**
+                    /**
          * Determine if the request contains a given input item key.
          *
          * @param string|array $key
@@ -9072,10 +9375,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function has($key)
         {
-            return \Illuminate\Http\Request::has($key);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->has($key);
         }
-        
-        /**
+                    /**
          * Determine if the request contains any of the given inputs.
          *
          * @param string|array $keys
@@ -9084,10 +9387,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasAny($keys)
         {
-            return \Illuminate\Http\Request::hasAny($keys);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->hasAny($keys);
         }
-        
-        /**
+                    /**
          * Determine if the request contains a non-empty value for an input item.
          *
          * @param string|array $key
@@ -9096,10 +9399,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function filled($key)
         {
-            return \Illuminate\Http\Request::filled($key);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->filled($key);
         }
-        
-        /**
+                    /**
          * Determine if the request contains a non-empty value for any of the given inputs.
          *
          * @param string|array $keys
@@ -9108,10 +9411,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function anyFilled($keys)
         {
-            return \Illuminate\Http\Request::anyFilled($keys);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->anyFilled($keys);
+        }
+                    /**
+         * Determine if the request is missing a given input item key.
+         *
+         * @param string|array $key
+         * @return bool 
+         * @static 
+         */ 
+        public static function missing($key)
+        {
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->missing($key);
         }
-        
-        /**
+                    /**
          * Get the keys for all of the input and files.
          *
          * @return array 
@@ -9119,35 +9434,50 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function keys()
         {
-            return \Illuminate\Http\Request::keys();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->keys();
         }
-        
-        /**
+                    /**
          * Get all of the input and files for the request.
          *
-         * @param array|mixed $keys
+         * @param array|mixed|null $keys
          * @return array 
          * @static 
          */ 
         public static function all($keys = null)
         {
-            return \Illuminate\Http\Request::all($keys);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->all($keys);
         }
-        
-        /**
+                    /**
          * Retrieve an input item from the request.
          *
          * @param string|null $key
-         * @param string|array|null $default
-         * @return string|array|null 
+         * @param mixed $default
+         * @return mixed 
          * @static 
          */ 
         public static function input($key = null, $default = null)
         {
-            return \Illuminate\Http\Request::input($key, $default);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->input($key, $default);
+        }
+                    /**
+         * Retrieve input as a boolean value.
+         * 
+         * Returns true when value is "1", "true", "on", and "yes". Otherwise, returns false.
+         *
+         * @param string|null $key
+         * @param bool $default
+         * @return bool 
+         * @static 
+         */ 
+        public static function boolean($key = null, $default = false)
+        {
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->boolean($key, $default);
         }
-        
-        /**
+                    /**
          * Get a subset containing the provided keys with values from the input data.
          *
          * @param array|mixed $keys
@@ -9156,10 +9486,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function only($keys)
         {
-            return \Illuminate\Http\Request::only($keys);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->only($keys);
         }
-        
-        /**
+                    /**
          * Get all of the input except for a specified array of items.
          *
          * @param array|mixed $keys
@@ -9168,36 +9498,36 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function except($keys)
         {
-            return \Illuminate\Http\Request::except($keys);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->except($keys);
         }
-        
-        /**
+                    /**
          * Retrieve a query string item from the request.
          *
-         * @param string $key
+         * @param string|null $key
          * @param string|array|null $default
-         * @return string|array 
+         * @return string|array|null 
          * @static 
          */ 
         public static function query($key = null, $default = null)
         {
-            return \Illuminate\Http\Request::query($key, $default);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->query($key, $default);
         }
-        
-        /**
+                    /**
          * Retrieve a request payload item from the request.
          *
-         * @param string $key
+         * @param string|null $key
          * @param string|array|null $default
-         * @return string|array 
+         * @return string|array|null 
          * @static 
          */ 
         public static function post($key = null, $default = null)
         {
-            return \Illuminate\Http\Request::post($key, $default);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->post($key, $default);
         }
-        
-        /**
+                    /**
          * Determine if a cookie is set on the request.
          *
          * @param string $key
@@ -9206,23 +9536,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasCookie($key)
         {
-            return \Illuminate\Http\Request::hasCookie($key);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->hasCookie($key);
         }
-        
-        /**
+                    /**
          * Retrieve a cookie from the request.
          *
-         * @param string $key
+         * @param string|null $key
          * @param string|array|null $default
-         * @return string|array 
+         * @return string|array|null 
          * @static 
          */ 
         public static function cookie($key = null, $default = null)
         {
-            return \Illuminate\Http\Request::cookie($key, $default);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->cookie($key, $default);
         }
-        
-        /**
+                    /**
          * Get an array of all of the files on the request.
          *
          * @return array 
@@ -9230,10 +9560,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function allFiles()
         {
-            return \Illuminate\Http\Request::allFiles();
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->allFiles();
         }
-        
-        /**
+                    /**
          * Determine if the uploaded data contains a file.
          *
          * @param string $key
@@ -9242,23 +9572,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasFile($key)
         {
-            return \Illuminate\Http\Request::hasFile($key);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->hasFile($key);
         }
-        
-        /**
+                    /**
          * Retrieve a file from the request.
          *
-         * @param string $key
+         * @param string|null $key
          * @param mixed $default
-         * @return \Illuminate\Http\UploadedFile|array|null 
+         * @return \Illuminate\Http\UploadedFile|\Illuminate\Http\UploadedFile[]|array|null 
          * @static 
          */ 
         public static function file($key = null, $default = null)
         {
-            return \Illuminate\Http\Request::file($key, $default);
+                        /** @var \Illuminate\Http\Request $instance */
+                        return $instance->file($key, $default);
         }
-        
-        /**
+                    /**
          * Register a custom macro.
          *
          * @param string $name
@@ -9268,23 +9598,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function macro($name, $macro)
         {
-            \Illuminate\Http\Request::macro($name, $macro);
+                        \Illuminate\Http\Request::macro($name, $macro);
         }
-        
-        /**
+                    /**
          * Mix another object into the class.
          *
          * @param object $mixin
+         * @param bool $replace
          * @return void 
          * @throws \ReflectionException
          * @static 
          */ 
-        public static function mixin($mixin)
+        public static function mixin($mixin, $replace = true)
         {
-            \Illuminate\Http\Request::mixin($mixin);
+                        \Illuminate\Http\Request::mixin($mixin, $replace);
         }
-        
-        /**
+                    /**
          * Checks if macro is registered.
          *
          * @param string $name
@@ -9293,40 +9622,54 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasMacro($name)
         {
-            return \Illuminate\Http\Request::hasMacro($name);
+                        return \Illuminate\Http\Request::hasMacro($name);
+        }
+                    /**
+         * 
+         *
+         * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation()
+         * @param array $rules
+         * @param mixed $params
+         * @static 
+         */ 
+        public static function validate($rules, ...$params)
+        {
+                        return \Illuminate\Http\Request::validate($rules, ...$params);
         }
-        
-        /**
+                    /**
          * 
          *
+         * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation()
+         * @param string $errorBag
+         * @param array $rules
+         * @param mixed $params
          * @static 
          */ 
-        public static function validate($rules, $params = null)
+        public static function validateWithBag($errorBag, $rules, ...$params)
         {
-            return \Illuminate\Http\Request::validate($rules, $params);
+                        return \Illuminate\Http\Request::validateWithBag($errorBag, $rules, ...$params);
         }
-        
-        /**
+                    /**
          * 
          *
+         * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation()
+         * @param mixed $absolute
          * @static 
          */ 
-        public static function hasValidSignature()
+        public static function hasValidSignature($absolute = true)
         {
-            return \Illuminate\Http\Request::hasValidSignature();
+                        return \Illuminate\Http\Request::hasValidSignature($absolute);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Contracts\Routing\ResponseFactory
      */ 
-    class Response {
-        
-        /**
-         * Return a new response from the application.
+        class Response {
+                    /**
+         * Create a new response instance.
          *
          * @param string $content
          * @param int $status
@@ -9334,28 +9677,41 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Http\Response 
          * @static 
          */ 
-        public static function make($content = '', $status = 200, $headers = array())
+        public static function make($content = '', $status = 200, $headers = [])
         {
-            return \Illuminate\Routing\ResponseFactory::make($content, $status, $headers);
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->make($content, $status, $headers);
         }
-        
-        /**
-         * Return a new view response from the application.
+                    /**
+         * Create a new "no content" response.
          *
-         * @param string $view
+         * @param int $status
+         * @param array $headers
+         * @return \Illuminate\Http\Response 
+         * @static 
+         */ 
+        public static function noContent($status = 204, $headers = [])
+        {
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->noContent($status, $headers);
+        }
+                    /**
+         * Create a new response for a given view.
+         *
+         * @param string|array $view
          * @param array $data
          * @param int $status
          * @param array $headers
          * @return \Illuminate\Http\Response 
          * @static 
          */ 
-        public static function view($view, $data = array(), $status = 200, $headers = array())
+        public static function view($view, $data = [], $status = 200, $headers = [])
         {
-            return \Illuminate\Routing\ResponseFactory::view($view, $data, $status, $headers);
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->view($view, $data, $status, $headers);
         }
-        
-        /**
-         * Return a new JSON response from the application.
+                    /**
+         * Create a new JSON response instance.
          *
          * @param mixed $data
          * @param int $status
@@ -9364,13 +9720,13 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Http\JsonResponse 
          * @static 
          */ 
-        public static function json($data = array(), $status = 200, $headers = array(), $options = 0)
+        public static function json($data = [], $status = 200, $headers = [], $options = 0)
         {
-            return \Illuminate\Routing\ResponseFactory::json($data, $status, $headers, $options);
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->json($data, $status, $headers, $options);
         }
-        
-        /**
-         * Return a new JSONP response from the application.
+                    /**
+         * Create a new JSONP response instance.
          *
          * @param string $callback
          * @param mixed $data
@@ -9380,13 +9736,13 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Http\JsonResponse 
          * @static 
          */ 
-        public static function jsonp($callback, $data = array(), $status = 200, $headers = array(), $options = 0)
+        public static function jsonp($callback, $data = [], $status = 200, $headers = [], $options = 0)
         {
-            return \Illuminate\Routing\ResponseFactory::jsonp($callback, $data, $status, $headers, $options);
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->jsonp($callback, $data, $status, $headers, $options);
         }
-        
-        /**
-         * Return a new streamed response from the application.
+                    /**
+         * Create a new streamed response instance.
          *
          * @param \Closure $callback
          * @param int $status
@@ -9394,13 +9750,13 @@ namespace Illuminate\Support\Facades {
          * @return \Symfony\Component\HttpFoundation\StreamedResponse 
          * @static 
          */ 
-        public static function stream($callback, $status = 200, $headers = array())
+        public static function stream($callback, $status = 200, $headers = [])
         {
-            return \Illuminate\Routing\ResponseFactory::stream($callback, $status, $headers);
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->stream($callback, $status, $headers);
         }
-        
-        /**
-         * Return a new streamed response as a file download from the application.
+                    /**
+         * Create a new streamed response instance as a file download.
          *
          * @param \Closure $callback
          * @param string|null $name
@@ -9409,12 +9765,12 @@ namespace Illuminate\Support\Facades {
          * @return \Symfony\Component\HttpFoundation\StreamedResponse 
          * @static 
          */ 
-        public static function streamDownload($callback, $name = null, $headers = array(), $disposition = 'attachment')
+        public static function streamDownload($callback, $name = null, $headers = [], $disposition = 'attachment')
         {
-            return \Illuminate\Routing\ResponseFactory::streamDownload($callback, $name, $headers, $disposition);
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->streamDownload($callback, $name, $headers, $disposition);
         }
-        
-        /**
+                    /**
          * Create a new file download response.
          *
          * @param \SplFileInfo|string $file
@@ -9424,12 +9780,12 @@ namespace Illuminate\Support\Facades {
          * @return \Symfony\Component\HttpFoundation\BinaryFileResponse 
          * @static 
          */ 
-        public static function download($file, $name = null, $headers = array(), $disposition = 'attachment')
+        public static function download($file, $name = null, $headers = [], $disposition = 'attachment')
         {
-            return \Illuminate\Routing\ResponseFactory::download($file, $name, $headers, $disposition);
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->download($file, $name, $headers, $disposition);
         }
-        
-        /**
+                    /**
          * Return the raw contents of a binary file.
          *
          * @param \SplFileInfo|string $file
@@ -9437,12 +9793,12 @@ namespace Illuminate\Support\Facades {
          * @return \Symfony\Component\HttpFoundation\BinaryFileResponse 
          * @static 
          */ 
-        public static function file($file, $headers = array())
+        public static function file($file, $headers = [])
         {
-            return \Illuminate\Routing\ResponseFactory::file($file, $headers);
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->file($file, $headers);
         }
-        
-        /**
+                    /**
          * Create a new redirect response to the given path.
          *
          * @param string $path
@@ -9452,12 +9808,12 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function redirectTo($path, $status = 302, $headers = array(), $secure = null)
+        public static function redirectTo($path, $status = 302, $headers = [], $secure = null)
         {
-            return \Illuminate\Routing\ResponseFactory::redirectTo($path, $status, $headers, $secure);
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->redirectTo($path, $status, $headers, $secure);
         }
-        
-        /**
+                    /**
          * Create a new redirect response to a named route.
          *
          * @param string $route
@@ -9467,12 +9823,12 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function redirectToRoute($route, $parameters = array(), $status = 302, $headers = array())
+        public static function redirectToRoute($route, $parameters = [], $status = 302, $headers = [])
         {
-            return \Illuminate\Routing\ResponseFactory::redirectToRoute($route, $parameters, $status, $headers);
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->redirectToRoute($route, $parameters, $status, $headers);
         }
-        
-        /**
+                    /**
          * Create a new redirect response to a controller action.
          *
          * @param string $action
@@ -9482,12 +9838,12 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function redirectToAction($action, $parameters = array(), $status = 302, $headers = array())
+        public static function redirectToAction($action, $parameters = [], $status = 302, $headers = [])
         {
-            return \Illuminate\Routing\ResponseFactory::redirectToAction($action, $parameters, $status, $headers);
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->redirectToAction($action, $parameters, $status, $headers);
         }
-        
-        /**
+                    /**
          * Create a new redirect response, while putting the current URL in the session.
          *
          * @param string $path
@@ -9497,12 +9853,12 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function redirectGuest($path, $status = 302, $headers = array(), $secure = null)
+        public static function redirectGuest($path, $status = 302, $headers = [], $secure = null)
         {
-            return \Illuminate\Routing\ResponseFactory::redirectGuest($path, $status, $headers, $secure);
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->redirectGuest($path, $status, $headers, $secure);
         }
-        
-        /**
+                    /**
          * Create a new redirect response to the previously intended location.
          *
          * @param string $default
@@ -9512,12 +9868,12 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Http\RedirectResponse 
          * @static 
          */ 
-        public static function redirectToIntended($default = '/', $status = 302, $headers = array(), $secure = null)
+        public static function redirectToIntended($default = '/', $status = 302, $headers = [], $secure = null)
         {
-            return \Illuminate\Routing\ResponseFactory::redirectToIntended($default, $status, $headers, $secure);
+                        /** @var \Illuminate\Routing\ResponseFactory $instance */
+                        return $instance->redirectToIntended($default, $status, $headers, $secure);
         }
-        
-        /**
+                    /**
          * Register a custom macro.
          *
          * @param string $name
@@ -9527,23 +9883,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function macro($name, $macro)
         {
-            \Illuminate\Routing\ResponseFactory::macro($name, $macro);
+                        \Illuminate\Routing\ResponseFactory::macro($name, $macro);
         }
-        
-        /**
+                    /**
          * Mix another object into the class.
          *
          * @param object $mixin
+         * @param bool $replace
          * @return void 
          * @throws \ReflectionException
          * @static 
          */ 
-        public static function mixin($mixin)
+        public static function mixin($mixin, $replace = true)
         {
-            \Illuminate\Routing\ResponseFactory::mixin($mixin);
+                        \Illuminate\Routing\ResponseFactory::mixin($mixin, $replace);
         }
-        
-        /**
+                    /**
          * Checks if macro is registered.
          *
          * @param string $name
@@ -9552,15 +9907,15 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasMacro($name)
         {
-            return \Illuminate\Routing\ResponseFactory::hasMacro($name);
+                        return \Illuminate\Routing\ResponseFactory::hasMacro($name);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @method static \Illuminate\Routing\RouteRegistrar prefix(string  $prefix)
+     * @method static \Illuminate\Routing\RouteRegistrar where(array  $where)
      * @method static \Illuminate\Routing\RouteRegistrar middleware(array|string|null $middleware)
      * @method static \Illuminate\Routing\RouteRegistrar as(string $value)
      * @method static \Illuminate\Routing\RouteRegistrar domain(string $value)
@@ -9568,112 +9923,111 @@ namespace Illuminate\Support\Facades {
      * @method static \Illuminate\Routing\RouteRegistrar namespace(string $value)
      * @see \Illuminate\Routing\Router
      */ 
-    class Route {
-        
-        /**
+        class Route {
+                    /**
          * Register a new GET route with the router.
          *
          * @param string $uri
-         * @param \Closure|array|string|null $action
+         * @param \Closure|array|string|callable|null $action
          * @return \Illuminate\Routing\Route 
          * @static 
          */ 
         public static function get($uri, $action = null)
         {
-            return \Illuminate\Routing\Router::get($uri, $action);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->get($uri, $action);
         }
-        
-        /**
+                    /**
          * Register a new POST route with the router.
          *
          * @param string $uri
-         * @param \Closure|array|string|null $action
+         * @param \Closure|array|string|callable|null $action
          * @return \Illuminate\Routing\Route 
          * @static 
          */ 
         public static function post($uri, $action = null)
         {
-            return \Illuminate\Routing\Router::post($uri, $action);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->post($uri, $action);
         }
-        
-        /**
+                    /**
          * Register a new PUT route with the router.
          *
          * @param string $uri
-         * @param \Closure|array|string|null $action
+         * @param \Closure|array|string|callable|null $action
          * @return \Illuminate\Routing\Route 
          * @static 
          */ 
         public static function put($uri, $action = null)
         {
-            return \Illuminate\Routing\Router::put($uri, $action);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->put($uri, $action);
         }
-        
-        /**
+                    /**
          * Register a new PATCH route with the router.
          *
          * @param string $uri
-         * @param \Closure|array|string|null $action
+         * @param \Closure|array|string|callable|null $action
          * @return \Illuminate\Routing\Route 
          * @static 
          */ 
         public static function patch($uri, $action = null)
         {
-            return \Illuminate\Routing\Router::patch($uri, $action);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->patch($uri, $action);
         }
-        
-        /**
+                    /**
          * Register a new DELETE route with the router.
          *
          * @param string $uri
-         * @param \Closure|array|string|null $action
+         * @param \Closure|array|string|callable|null $action
          * @return \Illuminate\Routing\Route 
          * @static 
          */ 
         public static function delete($uri, $action = null)
         {
-            return \Illuminate\Routing\Router::delete($uri, $action);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->delete($uri, $action);
         }
-        
-        /**
+                    /**
          * Register a new OPTIONS route with the router.
          *
          * @param string $uri
-         * @param \Closure|array|string|null $action
+         * @param \Closure|array|string|callable|null $action
          * @return \Illuminate\Routing\Route 
          * @static 
          */ 
         public static function options($uri, $action = null)
         {
-            return \Illuminate\Routing\Router::options($uri, $action);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->options($uri, $action);
         }
-        
-        /**
+                    /**
          * Register a new route responding to all verbs.
          *
          * @param string $uri
-         * @param \Closure|array|string|null $action
+         * @param \Closure|array|string|callable|null $action
          * @return \Illuminate\Routing\Route 
          * @static 
          */ 
         public static function any($uri, $action = null)
         {
-            return \Illuminate\Routing\Router::any($uri, $action);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->any($uri, $action);
         }
-        
-        /**
+                    /**
          * Register a new Fallback route with the router.
          *
-         * @param \Closure|array|string|null $action
+         * @param \Closure|array|string|callable|null $action
          * @return \Illuminate\Routing\Route 
          * @static 
          */ 
         public static function fallback($action)
         {
-            return \Illuminate\Routing\Router::fallback($action);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->fallback($action);
         }
-        
-        /**
+                    /**
          * Create a redirect from one URI to another.
          *
          * @param string $uri
@@ -9682,12 +10036,25 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Routing\Route 
          * @static 
          */ 
-        public static function redirect($uri, $destination, $status = 301)
+        public static function redirect($uri, $destination, $status = 302)
+        {
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->redirect($uri, $destination, $status);
+        }
+                    /**
+         * Create a permanent redirect from one URI to another.
+         *
+         * @param string $uri
+         * @param string $destination
+         * @return \Illuminate\Routing\Route 
+         * @static 
+         */ 
+        public static function permanentRedirect($uri, $destination)
         {
-            return \Illuminate\Routing\Router::redirect($uri, $destination, $status);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->permanentRedirect($uri, $destination);
         }
-        
-        /**
+                    /**
          * Register a new route that returns a view.
          *
          * @param string $uri
@@ -9696,38 +10063,39 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Routing\Route 
          * @static 
          */ 
-        public static function view($uri, $view, $data = array())
+        public static function view($uri, $view, $data = [])
         {
-            return \Illuminate\Routing\Router::view($uri, $view, $data);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->view($uri, $view, $data);
         }
-        
-        /**
+                    /**
          * Register a new route with the given verbs.
          *
          * @param array|string $methods
          * @param string $uri
-         * @param \Closure|array|string|null $action
+         * @param \Closure|array|string|callable|null $action
          * @return \Illuminate\Routing\Route 
          * @static 
          */ 
         public static function match($methods, $uri, $action = null)
         {
-            return \Illuminate\Routing\Router::match($methods, $uri, $action);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->match($methods, $uri, $action);
         }
-        
-        /**
+                    /**
          * Register an array of resource controllers.
          *
          * @param array $resources
+         * @param array $options
          * @return void 
          * @static 
          */ 
-        public static function resources($resources)
+        public static function resources($resources, $options = [])
         {
-            \Illuminate\Routing\Router::resources($resources);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->resources($resources, $options);
         }
-        
-        /**
+                    /**
          * Route a resource to a controller.
          *
          * @param string $name
@@ -9736,24 +10104,25 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Routing\PendingResourceRegistration 
          * @static 
          */ 
-        public static function resource($name, $controller, $options = array())
+        public static function resource($name, $controller, $options = [])
         {
-            return \Illuminate\Routing\Router::resource($name, $controller, $options);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->resource($name, $controller, $options);
         }
-        
-        /**
+                    /**
          * Register an array of API resource controllers.
          *
          * @param array $resources
+         * @param array $options
          * @return void 
          * @static 
          */ 
-        public static function apiResources($resources)
+        public static function apiResources($resources, $options = [])
         {
-            \Illuminate\Routing\Router::apiResources($resources);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->apiResources($resources, $options);
         }
-        
-        /**
+                    /**
          * Route an API resource to a controller.
          *
          * @param string $name
@@ -9762,12 +10131,12 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Routing\PendingResourceRegistration 
          * @static 
          */ 
-        public static function apiResource($name, $controller, $options = array())
+        public static function apiResource($name, $controller, $options = [])
         {
-            return \Illuminate\Routing\Router::apiResource($name, $controller, $options);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->apiResource($name, $controller, $options);
         }
-        
-        /**
+                    /**
          * Create a route group with shared attributes.
          *
          * @param array $attributes
@@ -9777,10 +10146,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function group($attributes, $routes)
         {
-            \Illuminate\Routing\Router::group($attributes, $routes);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->group($attributes, $routes);
         }
-        
-        /**
+                    /**
          * Merge the given array with the last group stack.
          *
          * @param array $new
@@ -9789,10 +10158,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function mergeWithLastGroup($new)
         {
-            return \Illuminate\Routing\Router::mergeWithLastGroup($new);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->mergeWithLastGroup($new);
         }
-        
-        /**
+                    /**
          * Get the prefix from the last group on the stack.
          *
          * @return string 
@@ -9800,46 +10169,60 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getLastGroupPrefix()
         {
-            return \Illuminate\Routing\Router::getLastGroupPrefix();
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->getLastGroupPrefix();
+        }
+                    /**
+         * Add a route to the underlying route collection.
+         *
+         * @param array|string $methods
+         * @param string $uri
+         * @param \Closure|array|string|callable|null $action
+         * @return \Illuminate\Routing\Route 
+         * @static 
+         */ 
+        public static function addRoute($methods, $uri, $action)
+        {
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->addRoute($methods, $uri, $action);
         }
-        
-        /**
+                    /**
          * Return the response returned by the given route.
          *
          * @param string $name
-         * @return mixed 
+         * @return \Symfony\Component\HttpFoundation\Response 
          * @static 
          */ 
         public static function respondWithRoute($name)
         {
-            return \Illuminate\Routing\Router::respondWithRoute($name);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->respondWithRoute($name);
         }
-        
-        /**
+                    /**
          * Dispatch the request to the application.
          *
          * @param \Illuminate\Http\Request $request
-         * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse 
+         * @return \Symfony\Component\HttpFoundation\Response 
          * @static 
          */ 
         public static function dispatch($request)
         {
-            return \Illuminate\Routing\Router::dispatch($request);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->dispatch($request);
         }
-        
-        /**
+                    /**
          * Dispatch the request to a route and return the response.
          *
          * @param \Illuminate\Http\Request $request
-         * @return mixed 
+         * @return \Symfony\Component\HttpFoundation\Response 
          * @static 
          */ 
         public static function dispatchToRoute($request)
         {
-            return \Illuminate\Routing\Router::dispatchToRoute($request);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->dispatchToRoute($request);
         }
-        
-        /**
+                    /**
          * Gather the middleware for the given route with resolved class names.
          *
          * @param \Illuminate\Routing\Route $route
@@ -9848,60 +10231,61 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function gatherRouteMiddleware($route)
         {
-            return \Illuminate\Routing\Router::gatherRouteMiddleware($route);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->gatherRouteMiddleware($route);
         }
-        
-        /**
+                    /**
          * Create a response instance from the given value.
          *
          * @param \Symfony\Component\HttpFoundation\Request $request
          * @param mixed $response
-         * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse 
+         * @return \Symfony\Component\HttpFoundation\Response 
          * @static 
          */ 
         public static function prepareResponse($request, $response)
         {
-            return \Illuminate\Routing\Router::prepareResponse($request, $response);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->prepareResponse($request, $response);
         }
-        
-        /**
+                    /**
          * Static version of prepareResponse.
          *
          * @param \Symfony\Component\HttpFoundation\Request $request
          * @param mixed $response
-         * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse 
+         * @return \Symfony\Component\HttpFoundation\Response 
          * @static 
          */ 
         public static function toResponse($request, $response)
         {
-            return \Illuminate\Routing\Router::toResponse($request, $response);
+                        return \Illuminate\Routing\Router::toResponse($request, $response);
         }
-        
-        /**
+                    /**
          * Substitute the route bindings onto the route.
          *
          * @param \Illuminate\Routing\Route $route
          * @return \Illuminate\Routing\Route 
+         * @throws \Illuminate\Database\Eloquent\ModelNotFoundException
          * @static 
          */ 
         public static function substituteBindings($route)
         {
-            return \Illuminate\Routing\Router::substituteBindings($route);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->substituteBindings($route);
         }
-        
-        /**
+                    /**
          * Substitute the implicit Eloquent model bindings for the route.
          *
          * @param \Illuminate\Routing\Route $route
          * @return void 
+         * @throws \Illuminate\Database\Eloquent\ModelNotFoundException
          * @static 
          */ 
         public static function substituteImplicitBindings($route)
         {
-            \Illuminate\Routing\Router::substituteImplicitBindings($route);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->substituteImplicitBindings($route);
         }
-        
-        /**
+                    /**
          * Register a route matched event listener.
          *
          * @param string|callable $callback
@@ -9910,10 +10294,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function matched($callback)
         {
-            \Illuminate\Routing\Router::matched($callback);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->matched($callback);
         }
-        
-        /**
+                    /**
          * Get all of the defined middleware short-hand names.
          *
          * @return array 
@@ -9921,23 +10305,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getMiddleware()
         {
-            return \Illuminate\Routing\Router::getMiddleware();
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->getMiddleware();
         }
-        
-        /**
+                    /**
          * Register a short-hand name for a middleware.
          *
          * @param string $name
          * @param string $class
-         * @return $this 
+         * @return \Illuminate\Routing\Router 
          * @static 
          */ 
         public static function aliasMiddleware($name, $class)
         {
-            return \Illuminate\Routing\Router::aliasMiddleware($name, $class);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->aliasMiddleware($name, $class);
         }
-        
-        /**
+                    /**
          * Check if a middlewareGroup with the given name exists.
          *
          * @param string $name
@@ -9946,10 +10330,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasMiddlewareGroup($name)
         {
-            return \Illuminate\Routing\Router::hasMiddlewareGroup($name);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->hasMiddlewareGroup($name);
         }
-        
-        /**
+                    /**
          * Get all of the defined middleware groups.
          *
          * @return array 
@@ -9957,53 +10341,53 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getMiddlewareGroups()
         {
-            return \Illuminate\Routing\Router::getMiddlewareGroups();
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->getMiddlewareGroups();
         }
-        
-        /**
+                    /**
          * Register a group of middleware.
          *
          * @param string $name
          * @param array $middleware
-         * @return $this 
+         * @return \Illuminate\Routing\Router 
          * @static 
          */ 
         public static function middlewareGroup($name, $middleware)
         {
-            return \Illuminate\Routing\Router::middlewareGroup($name, $middleware);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->middlewareGroup($name, $middleware);
         }
-        
-        /**
+                    /**
          * Add a middleware to the beginning of a middleware group.
          * 
          * If the middleware is already in the group, it will not be added again.
          *
          * @param string $group
          * @param string $middleware
-         * @return $this 
+         * @return \Illuminate\Routing\Router 
          * @static 
          */ 
         public static function prependMiddlewareToGroup($group, $middleware)
         {
-            return \Illuminate\Routing\Router::prependMiddlewareToGroup($group, $middleware);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->prependMiddlewareToGroup($group, $middleware);
         }
-        
-        /**
+                    /**
          * Add a middleware to the end of a middleware group.
          * 
          * If the middleware is already in the group, it will not be added again.
          *
          * @param string $group
          * @param string $middleware
-         * @return $this 
+         * @return \Illuminate\Routing\Router 
          * @static 
          */ 
         public static function pushMiddlewareToGroup($group, $middleware)
         {
-            return \Illuminate\Routing\Router::pushMiddlewareToGroup($group, $middleware);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->pushMiddlewareToGroup($group, $middleware);
         }
-        
-        /**
+                    /**
          * Add a new route parameter binder.
          *
          * @param string $key
@@ -10013,25 +10397,24 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function bind($key, $binder)
         {
-            \Illuminate\Routing\Router::bind($key, $binder);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->bind($key, $binder);
         }
-        
-        /**
+                    /**
          * Register a model binder for a wildcard.
          *
          * @param string $key
          * @param string $class
          * @param \Closure|null $callback
          * @return void 
-         * @throws \Illuminate\Database\Eloquent\ModelNotFoundException
          * @static 
          */ 
         public static function model($key, $class, $callback = null)
         {
-            \Illuminate\Routing\Router::model($key, $class, $callback);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->model($key, $class, $callback);
         }
-        
-        /**
+                    /**
          * Get the binding callback for a given binding.
          *
          * @param string $key
@@ -10040,10 +10423,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getBindingCallback($key)
         {
-            return \Illuminate\Routing\Router::getBindingCallback($key);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->getBindingCallback($key);
         }
-        
-        /**
+                    /**
          * Get the global "where" patterns.
          *
          * @return array 
@@ -10051,10 +10434,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getPatterns()
         {
-            return \Illuminate\Routing\Router::getPatterns();
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->getPatterns();
         }
-        
-        /**
+                    /**
          * Set a global where pattern on all routes.
          *
          * @param string $key
@@ -10064,10 +10447,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function pattern($key, $pattern)
         {
-            \Illuminate\Routing\Router::pattern($key, $pattern);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->pattern($key, $pattern);
         }
-        
-        /**
+                    /**
          * Set a group of global where patterns on all routes.
          *
          * @param array $patterns
@@ -10076,10 +10459,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function patterns($patterns)
         {
-            \Illuminate\Routing\Router::patterns($patterns);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->patterns($patterns);
         }
-        
-        /**
+                    /**
          * Determine if the router currently has a group stack.
          *
          * @return bool 
@@ -10087,10 +10470,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasGroupStack()
         {
-            return \Illuminate\Routing\Router::hasGroupStack();
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->hasGroupStack();
         }
-        
-        /**
+                    /**
          * Get the current group stack for the router.
          *
          * @return array 
@@ -10098,23 +10481,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getGroupStack()
         {
-            return \Illuminate\Routing\Router::getGroupStack();
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->getGroupStack();
         }
-        
-        /**
+                    /**
          * Get a route parameter for the current route.
          *
          * @param string $key
-         * @param string $default
+         * @param string|null $default
          * @return mixed 
          * @static 
          */ 
         public static function input($key, $default = null)
         {
-            return \Illuminate\Routing\Router::input($key, $default);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->input($key, $default);
         }
-        
-        /**
+                    /**
          * Get the request currently being dispatched.
          *
          * @return \Illuminate\Http\Request 
@@ -10122,10 +10505,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getCurrentRequest()
         {
-            return \Illuminate\Routing\Router::getCurrentRequest();
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->getCurrentRequest();
         }
-        
-        /**
+                    /**
          * Get the currently dispatched route instance.
          *
          * @return \Illuminate\Routing\Route 
@@ -10133,21 +10516,21 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getCurrentRoute()
         {
-            return \Illuminate\Routing\Router::getCurrentRoute();
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->getCurrentRoute();
         }
-        
-        /**
+                    /**
          * Get the currently dispatched route instance.
          *
-         * @return \Illuminate\Routing\Route 
+         * @return \Illuminate\Routing\Route|null 
          * @static 
          */ 
         public static function current()
         {
-            return \Illuminate\Routing\Router::current();
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->current();
         }
-        
-        /**
+                    /**
          * Check if a route with the given name exists.
          *
          * @param string $name
@@ -10156,10 +10539,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function has($name)
         {
-            return \Illuminate\Routing\Router::has($name);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->has($name);
         }
-        
-        /**
+                    /**
          * Get the current route name.
          *
          * @return string|null 
@@ -10167,34 +10550,34 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function currentRouteName()
         {
-            return \Illuminate\Routing\Router::currentRouteName();
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->currentRouteName();
         }
-        
-        /**
+                    /**
          * Alias for the "currentRouteNamed" method.
          *
          * @param mixed $patterns
          * @return bool 
          * @static 
          */ 
-        public static function is($patterns = null)
+        public static function is(...$patterns)
         {
-            return \Illuminate\Routing\Router::is($patterns);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->is(...$patterns);
         }
-        
-        /**
+                    /**
          * Determine if the current route matches a pattern.
          *
          * @param mixed $patterns
          * @return bool 
          * @static 
          */ 
-        public static function currentRouteNamed($patterns = null)
+        public static function currentRouteNamed(...$patterns)
         {
-            return \Illuminate\Routing\Router::currentRouteNamed($patterns);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->currentRouteNamed(...$patterns);
         }
-        
-        /**
+                    /**
          * Get the current route action.
          *
          * @return string|null 
@@ -10202,22 +10585,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function currentRouteAction()
         {
-            return \Illuminate\Routing\Router::currentRouteAction();
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->currentRouteAction();
         }
-        
-        /**
+                    /**
          * Alias for the "currentRouteUses" method.
          *
          * @param array $patterns
          * @return bool 
          * @static 
          */ 
-        public static function uses($patterns = null)
+        public static function uses(...$patterns)
         {
-            return \Illuminate\Routing\Router::uses($patterns);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->uses(...$patterns);
         }
-        
-        /**
+                    /**
          * Determine if the current route action matches a given action.
          *
          * @param string $action
@@ -10226,21 +10609,55 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function currentRouteUses($action)
         {
-            return \Illuminate\Routing\Router::currentRouteUses($action);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->currentRouteUses($action);
         }
-        
-        /**
+                    /**
          * Register the typical authentication routes for an application.
          *
+         * @param array $options
+         * @return void 
+         * @static 
+         */ 
+        public static function auth($options = [])
+        {
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->auth($options);
+        }
+                    /**
+         * Register the typical reset password routes for an application.
+         *
+         * @return void 
+         * @static 
+         */ 
+        public static function resetPassword()
+        {
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->resetPassword();
+        }
+                    /**
+         * Register the typical confirm password routes for an application.
+         *
+         * @return void 
+         * @static 
+         */ 
+        public static function confirmPassword()
+        {
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->confirmPassword();
+        }
+                    /**
+         * Register the typical email verification routes for an application.
+         *
          * @return void 
          * @static 
          */ 
-        public static function auth()
+        public static function emailVerification()
         {
-            \Illuminate\Routing\Router::auth();
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->emailVerification();
         }
-        
-        /**
+                    /**
          * Set the unmapped global resource parameters to singular.
          *
          * @param bool $singular
@@ -10249,34 +10666,34 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function singularResourceParameters($singular = true)
         {
-            \Illuminate\Routing\Router::singularResourceParameters($singular);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->singularResourceParameters($singular);
         }
-        
-        /**
+                    /**
          * Set the global resource parameter mapping.
          *
          * @param array $parameters
          * @return void 
          * @static 
          */ 
-        public static function resourceParameters($parameters = array())
+        public static function resourceParameters($parameters = [])
         {
-            \Illuminate\Routing\Router::resourceParameters($parameters);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->resourceParameters($parameters);
         }
-        
-        /**
+                    /**
          * Get or set the verbs used in the resource URIs.
          *
          * @param array $verbs
          * @return array|null 
          * @static 
          */ 
-        public static function resourceVerbs($verbs = array())
+        public static function resourceVerbs($verbs = [])
         {
-            return \Illuminate\Routing\Router::resourceVerbs($verbs);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->resourceVerbs($verbs);
         }
-        
-        /**
+                    /**
          * Get the underlying route collection.
          *
          * @return \Illuminate\Routing\RouteCollection 
@@ -10284,10 +10701,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getRoutes()
         {
-            return \Illuminate\Routing\Router::getRoutes();
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->getRoutes();
         }
-        
-        /**
+                    /**
          * Set the route collection instance.
          *
          * @param \Illuminate\Routing\RouteCollection $routes
@@ -10296,10 +10713,21 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setRoutes($routes)
         {
-            \Illuminate\Routing\Router::setRoutes($routes);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        $instance->setRoutes($routes);
+        }
+                    /**
+         * Remove any duplicate middleware from the given array.
+         *
+         * @param array $middleware
+         * @return array 
+         * @static 
+         */ 
+        public static function uniqueMiddleware($middleware)
+        {
+                        return \Illuminate\Routing\Router::uniqueMiddleware($middleware);
         }
-        
-        /**
+                    /**
          * Register a custom macro.
          *
          * @param string $name
@@ -10309,23 +10737,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function macro($name, $macro)
         {
-            \Illuminate\Routing\Router::macro($name, $macro);
+                        \Illuminate\Routing\Router::macro($name, $macro);
         }
-        
-        /**
+                    /**
          * Mix another object into the class.
          *
          * @param object $mixin
+         * @param bool $replace
          * @return void 
          * @throws \ReflectionException
          * @static 
          */ 
-        public static function mixin($mixin)
+        public static function mixin($mixin, $replace = true)
         {
-            \Illuminate\Routing\Router::mixin($mixin);
+                        \Illuminate\Routing\Router::mixin($mixin, $replace);
         }
-        
-        /**
+                    /**
          * Checks if macro is registered.
          *
          * @param string $name
@@ -10334,10 +10761,9 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasMacro($name)
         {
-            return \Illuminate\Routing\Router::hasMacro($name);
+                        return \Illuminate\Routing\Router::hasMacro($name);
         }
-        
-        /**
+                    /**
          * Dynamically handle calls to the class.
          *
          * @param string $method
@@ -10348,19 +10774,18 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function macroCall($method, $parameters)
         {
-            return \Illuminate\Routing\Router::macroCall($method, $parameters);
+                        /** @var \Illuminate\Routing\Router $instance */
+                        return $instance->macroCall($method, $parameters);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Database\Schema\Builder
      */ 
-    class Schema {
-        
-        /**
+        class Schema {
+                    /**
          * Drop all tables from the database.
          *
          * @return void 
@@ -10368,10 +10793,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function dropAllTables()
         {
-            \Illuminate\Database\Schema\SQLiteBuilder::dropAllTables();
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        $instance->dropAllTables();
         }
-        
-        /**
+                    /**
          * Drop all views from the database.
          *
          * @return void 
@@ -10379,10 +10804,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function dropAllViews()
         {
-            \Illuminate\Database\Schema\SQLiteBuilder::dropAllViews();
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        $instance->dropAllViews();
         }
-        
-        /**
+                    /**
          * Empty the database file.
          *
          * @return void 
@@ -10390,10 +10815,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function refreshDatabaseFile()
         {
-            \Illuminate\Database\Schema\SQLiteBuilder::refreshDatabaseFile();
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        $instance->refreshDatabaseFile();
         }
-        
-        /**
+                    /**
          * Set the default string length for migrations.
          *
          * @param int $length
@@ -10401,12 +10826,10 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function defaultStringLength($length)
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            \Illuminate\Database\Schema\SQLiteBuilder::defaultStringLength($length);
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        \Illuminate\Database\Schema\SQLiteBuilder::defaultStringLength($length);
         }
-        
-        /**
+                    /**
          * Determine if the given table exists.
          *
          * @param string $table
@@ -10414,12 +10837,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function hasTable($table)
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            return \Illuminate\Database\Schema\SQLiteBuilder::hasTable($table);
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        return $instance->hasTable($table);
         }
-        
-        /**
+                    /**
          * Determine if the given table has a given column.
          *
          * @param string $table
@@ -10428,12 +10850,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function hasColumn($table, $column)
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            return \Illuminate\Database\Schema\SQLiteBuilder::hasColumn($table, $column);
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        return $instance->hasColumn($table, $column);
         }
-        
-        /**
+                    /**
          * Determine if the given table has given columns.
          *
          * @param string $table
@@ -10442,12 +10863,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function hasColumns($table, $columns)
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            return \Illuminate\Database\Schema\SQLiteBuilder::hasColumns($table, $columns);
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        return $instance->hasColumns($table, $columns);
         }
-        
-        /**
+                    /**
          * Get the data type for the given column name.
          *
          * @param string $table
@@ -10456,12 +10876,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getColumnType($table, $column)
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            return \Illuminate\Database\Schema\SQLiteBuilder::getColumnType($table, $column);
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        return $instance->getColumnType($table, $column);
         }
-        
-        /**
+                    /**
          * Get the column listing for a given table.
          *
          * @param string $table
@@ -10469,12 +10888,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function getColumnListing($table)
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            return \Illuminate\Database\Schema\SQLiteBuilder::getColumnListing($table);
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        return $instance->getColumnListing($table);
         }
-        
-        /**
+                    /**
          * Modify a table on the schema.
          *
          * @param string $table
@@ -10483,12 +10901,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function table($table, $callback)
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            \Illuminate\Database\Schema\SQLiteBuilder::table($table, $callback);
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        $instance->table($table, $callback);
         }
-        
-        /**
+                    /**
          * Create a new table on the schema.
          *
          * @param string $table
@@ -10497,12 +10914,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function create($table, $callback)
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            \Illuminate\Database\Schema\SQLiteBuilder::create($table, $callback);
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        $instance->create($table, $callback);
         }
-        
-        /**
+                    /**
          * Drop a table from the schema.
          *
          * @param string $table
@@ -10510,12 +10926,11 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function drop($table)
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            \Illuminate\Database\Schema\SQLiteBuilder::drop($table);
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        $instance->drop($table);
         }
-        
-        /**
+                    /**
          * Drop a table from the schema if it exists.
          *
          * @param string $table
@@ -10523,12 +10938,35 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function dropIfExists($table)
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            \Illuminate\Database\Schema\SQLiteBuilder::dropIfExists($table);
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        $instance->dropIfExists($table);
+        }
+                    /**
+         * Drop all types from the database.
+         *
+         * @return void 
+         * @throws \LogicException
+         * @static 
+         */ 
+        public static function dropAllTypes()
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        $instance->dropAllTypes();
+        }
+                    /**
+         * Get all of the table names for the database.
+         *
+         * @return void 
+         * @throws \LogicException
+         * @static 
+         */ 
+        public static function getAllTables()
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        $instance->getAllTables();
         }
-        
-        /**
+                    /**
          * Rename a table on the schema.
          *
          * @param string $from
@@ -10537,61 +10975,72 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function rename($from, $to)
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            \Illuminate\Database\Schema\SQLiteBuilder::rename($from, $to);
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        $instance->rename($from, $to);
         }
-        
-        /**
+                    /**
          * Enable foreign key constraints.
          *
          * @return bool 
          * @static 
          */ 
         public static function enableForeignKeyConstraints()
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            return \Illuminate\Database\Schema\SQLiteBuilder::enableForeignKeyConstraints();
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        return $instance->enableForeignKeyConstraints();
         }
-        
-        /**
+                    /**
          * Disable foreign key constraints.
          *
          * @return bool 
          * @static 
          */ 
         public static function disableForeignKeyConstraints()
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            return \Illuminate\Database\Schema\SQLiteBuilder::disableForeignKeyConstraints();
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        return $instance->disableForeignKeyConstraints();
+        }
+                    /**
+         * Register a custom Doctrine mapping type.
+         *
+         * @param string $class
+         * @param string $name
+         * @param string $type
+         * @return void 
+         * @throws \Doctrine\DBAL\DBALException
+         * @throws \RuntimeException
+         * @static 
+         */ 
+        public static function registerCustomDoctrineType($class, $name, $type)
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        $instance->registerCustomDoctrineType($class, $name, $type);
         }
-        
-        /**
+                    /**
          * Get the database connection instance.
          *
          * @return \Illuminate\Database\Connection 
          * @static 
          */ 
         public static function getConnection()
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            return \Illuminate\Database\Schema\SQLiteBuilder::getConnection();
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        return $instance->getConnection();
         }
-        
-        /**
+                    /**
          * Set the database connection instance.
          *
          * @param \Illuminate\Database\Connection $connection
-         * @return $this 
+         * @return \Illuminate\Database\Schema\SQLiteBuilder 
          * @static 
          */ 
         public static function setConnection($connection)
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            return \Illuminate\Database\Schema\SQLiteBuilder::setConnection($connection);
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        return $instance->setConnection($connection);
         }
-        
-        /**
+                    /**
          * Set the Schema Blueprint resolver callback.
          *
          * @param \Closure $resolver
@@ -10599,22 +11048,20 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function blueprintResolver($resolver)
-        {
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            \Illuminate\Database\Schema\SQLiteBuilder::blueprintResolver($resolver);
+        {            //Method inherited from \Illuminate\Database\Schema\Builder         
+                        /** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
+                        $instance->blueprintResolver($resolver);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Session\SessionManager
      * @see \Illuminate\Session\Store
      */ 
-    class Session {
-        
-        /**
+        class Session {
+                    /**
          * Get the session configuration.
          *
          * @return array 
@@ -10622,10 +11069,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getSessionConfig()
         {
-            return \Illuminate\Session\SessionManager::getSessionConfig();
+                        /** @var \Illuminate\Session\SessionManager $instance */
+                        return $instance->getSessionConfig();
         }
-        
-        /**
+                    /**
          * Get the default session driver name.
          *
          * @return string 
@@ -10633,10 +11080,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDefaultDriver()
         {
-            return \Illuminate\Session\SessionManager::getDefaultDriver();
+                        /** @var \Illuminate\Session\SessionManager $instance */
+                        return $instance->getDefaultDriver();
         }
-        
-        /**
+                    /**
          * Set the default session driver name.
          *
          * @param string $name
@@ -10645,10 +11092,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setDefaultDriver($name)
         {
-            \Illuminate\Session\SessionManager::setDefaultDriver($name);
+                        /** @var \Illuminate\Session\SessionManager $instance */
+                        $instance->setDefaultDriver($name);
         }
-        
-        /**
+                    /**
          * Get a driver instance.
          *
          * @param string $driver
@@ -10657,38 +11104,35 @@ namespace Illuminate\Support\Facades {
          * @static 
          */ 
         public static function driver($driver = null)
-        {
-            //Method inherited from \Illuminate\Support\Manager            
-            return \Illuminate\Session\SessionManager::driver($driver);
+        {            //Method inherited from \Illuminate\Support\Manager         
+                        /** @var \Illuminate\Session\SessionManager $instance */
+                        return $instance->driver($driver);
         }
-        
-        /**
+                    /**
          * Register a custom driver creator Closure.
          *
          * @param string $driver
          * @param \Closure $callback
-         * @return $this 
+         * @return \Illuminate\Session\SessionManager 
          * @static 
          */ 
         public static function extend($driver, $callback)
-        {
-            //Method inherited from \Illuminate\Support\Manager            
-            return \Illuminate\Session\SessionManager::extend($driver, $callback);
+        {            //Method inherited from \Illuminate\Support\Manager         
+                        /** @var \Illuminate\Session\SessionManager $instance */
+                        return $instance->extend($driver, $callback);
         }
-        
-        /**
+                    /**
          * Get all of the created "drivers".
          *
          * @return array 
          * @static 
          */ 
         public static function getDrivers()
-        {
-            //Method inherited from \Illuminate\Support\Manager            
-            return \Illuminate\Session\SessionManager::getDrivers();
+        {            //Method inherited from \Illuminate\Support\Manager         
+                        /** @var \Illuminate\Session\SessionManager $instance */
+                        return $instance->getDrivers();
         }
-        
-        /**
+                    /**
          * Start the session, reading the data from a handler.
          *
          * @return bool 
@@ -10696,21 +11140,21 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function start()
         {
-            return \Illuminate\Session\Store::start();
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->start();
         }
-        
-        /**
+                    /**
          * Save the session data to storage.
          *
-         * @return bool 
+         * @return void 
          * @static 
          */ 
         public static function save()
         {
-            return \Illuminate\Session\Store::save();
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->save();
         }
-        
-        /**
+                    /**
          * Age the flash data for the session.
          *
          * @return void 
@@ -10718,10 +11162,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function ageFlashData()
         {
-            \Illuminate\Session\Store::ageFlashData();
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->ageFlashData();
         }
-        
-        /**
+                    /**
          * Get all of the session data.
          *
          * @return array 
@@ -10729,10 +11173,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function all()
         {
-            return \Illuminate\Session\Store::all();
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->all();
+        }
+                    /**
+         * Get a subset of the session data.
+         *
+         * @param array $keys
+         * @return array 
+         * @static 
+         */ 
+        public static function only($keys)
+        {
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->only($keys);
         }
-        
-        /**
+                    /**
          * Checks if a key exists.
          *
          * @param string|array $key
@@ -10741,10 +11197,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function exists($key)
         {
-            return \Illuminate\Session\Store::exists($key);
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->exists($key);
         }
-        
-        /**
+                    /**
          * Checks if a key is present and not null.
          *
          * @param string|array $key
@@ -10753,10 +11209,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function has($key)
         {
-            return \Illuminate\Session\Store::has($key);
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->has($key);
         }
-        
-        /**
+                    /**
          * Get an item from the session.
          *
          * @param string $key
@@ -10766,48 +11222,48 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function get($key, $default = null)
         {
-            return \Illuminate\Session\Store::get($key, $default);
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->get($key, $default);
         }
-        
-        /**
+                    /**
          * Get the value of a given key and then forget it.
          *
          * @param string $key
-         * @param string $default
+         * @param string|null $default
          * @return mixed 
          * @static 
          */ 
         public static function pull($key, $default = null)
         {
-            return \Illuminate\Session\Store::pull($key, $default);
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->pull($key, $default);
         }
-        
-        /**
+                    /**
          * Determine if the session contains old input.
          *
-         * @param string $key
+         * @param string|null $key
          * @return bool 
          * @static 
          */ 
         public static function hasOldInput($key = null)
         {
-            return \Illuminate\Session\Store::hasOldInput($key);
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->hasOldInput($key);
         }
-        
-        /**
+                    /**
          * Get the requested item from the flashed input array.
          *
-         * @param string $key
+         * @param string|null $key
          * @param mixed $default
          * @return mixed 
          * @static 
          */ 
         public static function getOldInput($key = null, $default = null)
         {
-            return \Illuminate\Session\Store::getOldInput($key, $default);
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->getOldInput($key, $default);
         }
-        
-        /**
+                    /**
          * Replace the given session attributes entirely.
          *
          * @param array $attributes
@@ -10816,10 +11272,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function replace($attributes)
         {
-            \Illuminate\Session\Store::replace($attributes);
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->replace($attributes);
         }
-        
-        /**
+                    /**
          * Put a key / value pair or array of key / value pairs in the session.
          *
          * @param string|array $key
@@ -10829,10 +11285,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function put($key, $value = null)
         {
-            \Illuminate\Session\Store::put($key, $value);
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->put($key, $value);
         }
-        
-        /**
+                    /**
          * Get an item from the session, or store the default value.
          *
          * @param string $key
@@ -10842,10 +11298,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function remember($key, $callback)
         {
-            return \Illuminate\Session\Store::remember($key, $callback);
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->remember($key, $callback);
         }
-        
-        /**
+                    /**
          * Push a value onto a session array.
          *
          * @param string $key
@@ -10855,10 +11311,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function push($key, $value)
         {
-            \Illuminate\Session\Store::push($key, $value);
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->push($key, $value);
         }
-        
-        /**
+                    /**
          * Increment the value of an item in the session.
          *
          * @param string $key
@@ -10868,10 +11324,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function increment($key, $amount = 1)
         {
-            return \Illuminate\Session\Store::increment($key, $amount);
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->increment($key, $amount);
         }
-        
-        /**
+                    /**
          * Decrement the value of an item in the session.
          *
          * @param string $key
@@ -10881,10 +11337,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function decrement($key, $amount = 1)
         {
-            return \Illuminate\Session\Store::decrement($key, $amount);
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->decrement($key, $amount);
         }
-        
-        /**
+                    /**
          * Flash a key / value pair to the session.
          *
          * @param string $key
@@ -10894,10 +11350,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flash($key, $value = true)
         {
-            \Illuminate\Session\Store::flash($key, $value);
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->flash($key, $value);
         }
-        
-        /**
+                    /**
          * Flash a key / value pair to the session for immediate use.
          *
          * @param string $key
@@ -10907,10 +11363,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function now($key, $value)
         {
-            \Illuminate\Session\Store::now($key, $value);
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->now($key, $value);
         }
-        
-        /**
+                    /**
          * Reflash all of the session flash data.
          *
          * @return void 
@@ -10918,10 +11374,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function reflash()
         {
-            \Illuminate\Session\Store::reflash();
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->reflash();
         }
-        
-        /**
+                    /**
          * Reflash a subset of the current flash data.
          *
          * @param array|mixed $keys
@@ -10930,10 +11386,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function keep($keys = null)
         {
-            \Illuminate\Session\Store::keep($keys);
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->keep($keys);
         }
-        
-        /**
+                    /**
          * Flash an input array to the session.
          *
          * @param array $value
@@ -10942,10 +11398,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flashInput($value)
         {
-            \Illuminate\Session\Store::flashInput($value);
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->flashInput($value);
         }
-        
-        /**
+                    /**
          * Remove an item from the session, returning its value.
          *
          * @param string $key
@@ -10954,10 +11410,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function remove($key)
         {
-            return \Illuminate\Session\Store::remove($key);
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->remove($key);
         }
-        
-        /**
+                    /**
          * Remove one or many items from the session.
          *
          * @param string|array $keys
@@ -10966,10 +11422,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function forget($keys)
         {
-            \Illuminate\Session\Store::forget($keys);
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->forget($keys);
         }
-        
-        /**
+                    /**
          * Remove all of the items from the session.
          *
          * @return void 
@@ -10977,10 +11433,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flush()
         {
-            \Illuminate\Session\Store::flush();
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->flush();
         }
-        
-        /**
+                    /**
          * Flush the session data and regenerate the ID.
          *
          * @return bool 
@@ -10988,10 +11444,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function invalidate()
         {
-            return \Illuminate\Session\Store::invalidate();
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->invalidate();
         }
-        
-        /**
+                    /**
          * Generate a new session identifier.
          *
          * @param bool $destroy
@@ -11000,10 +11456,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function regenerate($destroy = false)
         {
-            return \Illuminate\Session\Store::regenerate($destroy);
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->regenerate($destroy);
         }
-        
-        /**
+                    /**
          * Generate a new session ID for the session.
          *
          * @param bool $destroy
@@ -11012,10 +11468,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function migrate($destroy = false)
         {
-            return \Illuminate\Session\Store::migrate($destroy);
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->migrate($destroy);
         }
-        
-        /**
+                    /**
          * Determine if the session has been started.
          *
          * @return bool 
@@ -11023,10 +11479,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function isStarted()
         {
-            return \Illuminate\Session\Store::isStarted();
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->isStarted();
         }
-        
-        /**
+                    /**
          * Get the name of the session.
          *
          * @return string 
@@ -11034,10 +11490,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getName()
         {
-            return \Illuminate\Session\Store::getName();
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->getName();
         }
-        
-        /**
+                    /**
          * Set the name of the session.
          *
          * @param string $name
@@ -11046,10 +11502,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setName($name)
         {
-            \Illuminate\Session\Store::setName($name);
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->setName($name);
         }
-        
-        /**
+                    /**
          * Get the current session ID.
          *
          * @return string 
@@ -11057,10 +11513,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getId()
         {
-            return \Illuminate\Session\Store::getId();
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->getId();
         }
-        
-        /**
+                    /**
          * Set the session ID.
          *
          * @param string $id
@@ -11069,10 +11525,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setId($id)
         {
-            \Illuminate\Session\Store::setId($id);
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->setId($id);
         }
-        
-        /**
+                    /**
          * Determine if this is a valid session ID.
          *
          * @param string $id
@@ -11081,10 +11537,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function isValidId($id)
         {
-            return \Illuminate\Session\Store::isValidId($id);
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->isValidId($id);
         }
-        
-        /**
+                    /**
          * Set the existence of the session on the handler if applicable.
          *
          * @param bool $value
@@ -11093,10 +11549,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setExists($value)
         {
-            \Illuminate\Session\Store::setExists($value);
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->setExists($value);
         }
-        
-        /**
+                    /**
          * Get the CSRF token value.
          *
          * @return string 
@@ -11104,10 +11560,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function token()
         {
-            return \Illuminate\Session\Store::token();
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->token();
         }
-        
-        /**
+                    /**
          * Regenerate the CSRF token value.
          *
          * @return void 
@@ -11115,10 +11571,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function regenerateToken()
         {
-            \Illuminate\Session\Store::regenerateToken();
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->regenerateToken();
         }
-        
-        /**
+                    /**
          * Get the previous URL from the session.
          *
          * @return string|null 
@@ -11126,10 +11582,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function previousUrl()
         {
-            return \Illuminate\Session\Store::previousUrl();
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->previousUrl();
         }
-        
-        /**
+                    /**
          * Set the "previous" URL in the session.
          *
          * @param string $url
@@ -11138,10 +11594,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setPreviousUrl($url)
         {
-            \Illuminate\Session\Store::setPreviousUrl($url);
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->setPreviousUrl($url);
         }
-        
-        /**
+                    /**
          * Get the underlying session handler implementation.
          *
          * @return \SessionHandlerInterface 
@@ -11149,10 +11605,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getHandler()
         {
-            return \Illuminate\Session\Store::getHandler();
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->getHandler();
         }
-        
-        /**
+                    /**
          * Determine if the session handler needs a request.
          *
          * @return bool 
@@ -11160,10 +11616,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function handlerNeedsRequest()
         {
-            return \Illuminate\Session\Store::handlerNeedsRequest();
+                        /** @var \Illuminate\Session\Store $instance */
+                        return $instance->handlerNeedsRequest();
         }
-        
-        /**
+                    /**
          * Set the request on the handler instance.
          *
          * @param \Illuminate\Http\Request $request
@@ -11172,43 +11628,42 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setRequestOnHandler($request)
         {
-            \Illuminate\Session\Store::setRequestOnHandler($request);
+                        /** @var \Illuminate\Session\Store $instance */
+                        $instance->setRequestOnHandler($request);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Filesystem\FilesystemManager
      */ 
-    class Storage {
-        
-        /**
+        class Storage {
+                    /**
          * Get a filesystem instance.
          *
-         * @param string $name
+         * @param string|null $name
          * @return \Illuminate\Filesystem\FilesystemAdapter 
          * @static 
          */ 
         public static function drive($name = null)
         {
-            return \Illuminate\Filesystem\FilesystemManager::drive($name);
+                        /** @var \Illuminate\Filesystem\FilesystemManager $instance */
+                        return $instance->drive($name);
         }
-        
-        /**
+                    /**
          * Get a filesystem instance.
          *
-         * @param string $name
+         * @param string|null $name
          * @return \Illuminate\Filesystem\FilesystemAdapter 
          * @static 
          */ 
         public static function disk($name = null)
         {
-            return \Illuminate\Filesystem\FilesystemManager::disk($name);
+                        /** @var \Illuminate\Filesystem\FilesystemManager $instance */
+                        return $instance->disk($name);
         }
-        
-        /**
+                    /**
          * Get a default cloud filesystem instance.
          *
          * @return \Illuminate\Filesystem\FilesystemAdapter 
@@ -11216,10 +11671,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function cloud()
         {
-            return \Illuminate\Filesystem\FilesystemManager::cloud();
+                        /** @var \Illuminate\Filesystem\FilesystemManager $instance */
+                        return $instance->cloud();
         }
-        
-        /**
+                    /**
          * Create an instance of the local driver.
          *
          * @param array $config
@@ -11228,10 +11683,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function createLocalDriver($config)
         {
-            return \Illuminate\Filesystem\FilesystemManager::createLocalDriver($config);
+                        /** @var \Illuminate\Filesystem\FilesystemManager $instance */
+                        return $instance->createLocalDriver($config);
         }
-        
-        /**
+                    /**
          * Create an instance of the ftp driver.
          *
          * @param array $config
@@ -11240,10 +11695,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function createFtpDriver($config)
         {
-            return \Illuminate\Filesystem\FilesystemManager::createFtpDriver($config);
+                        /** @var \Illuminate\Filesystem\FilesystemManager $instance */
+                        return $instance->createFtpDriver($config);
         }
-        
-        /**
+                    /**
          * Create an instance of the sftp driver.
          *
          * @param array $config
@@ -11252,10 +11707,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function createSftpDriver($config)
         {
-            return \Illuminate\Filesystem\FilesystemManager::createSftpDriver($config);
+                        /** @var \Illuminate\Filesystem\FilesystemManager $instance */
+                        return $instance->createSftpDriver($config);
         }
-        
-        /**
+                    /**
          * Create an instance of the Amazon S3 driver.
          *
          * @param array $config
@@ -11264,35 +11719,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function createS3Driver($config)
         {
-            return \Illuminate\Filesystem\FilesystemManager::createS3Driver($config);
-        }
-        
-        /**
-         * Create an instance of the Rackspace driver.
-         *
-         * @param array $config
-         * @return \Illuminate\Contracts\Filesystem\Cloud 
-         * @static 
-         */ 
-        public static function createRackspaceDriver($config)
-        {
-            return \Illuminate\Filesystem\FilesystemManager::createRackspaceDriver($config);
+                        /** @var \Illuminate\Filesystem\FilesystemManager $instance */
+                        return $instance->createS3Driver($config);
         }
-        
-        /**
+                    /**
          * Set the given disk instance.
          *
          * @param string $name
          * @param mixed $disk
-         * @return $this 
+         * @return \Illuminate\Filesystem\FilesystemManager 
          * @static 
          */ 
         public static function set($name, $disk)
         {
-            return \Illuminate\Filesystem\FilesystemManager::set($name, $disk);
+                        /** @var \Illuminate\Filesystem\FilesystemManager $instance */
+                        return $instance->set($name, $disk);
         }
-        
-        /**
+                    /**
          * Get the default driver name.
          *
          * @return string 
@@ -11300,10 +11743,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDefaultDriver()
         {
-            return \Illuminate\Filesystem\FilesystemManager::getDefaultDriver();
+                        /** @var \Illuminate\Filesystem\FilesystemManager $instance */
+                        return $instance->getDefaultDriver();
         }
-        
-        /**
+                    /**
          * Get the default cloud driver name.
          *
          * @return string 
@@ -11311,59 +11754,59 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDefaultCloudDriver()
         {
-            return \Illuminate\Filesystem\FilesystemManager::getDefaultCloudDriver();
+                        /** @var \Illuminate\Filesystem\FilesystemManager $instance */
+                        return $instance->getDefaultCloudDriver();
         }
-        
-        /**
+                    /**
          * Unset the given disk instances.
          *
          * @param array|string $disk
-         * @return $this 
+         * @return \Illuminate\Filesystem\FilesystemManager 
          * @static 
          */ 
         public static function forgetDisk($disk)
         {
-            return \Illuminate\Filesystem\FilesystemManager::forgetDisk($disk);
+                        /** @var \Illuminate\Filesystem\FilesystemManager $instance */
+                        return $instance->forgetDisk($disk);
         }
-        
-        /**
+                    /**
          * Register a custom driver creator Closure.
          *
          * @param string $driver
          * @param \Closure $callback
-         * @return $this 
+         * @return \Illuminate\Filesystem\FilesystemManager 
          * @static 
          */ 
         public static function extend($driver, $callback)
         {
-            return \Illuminate\Filesystem\FilesystemManager::extend($driver, $callback);
+                        /** @var \Illuminate\Filesystem\FilesystemManager $instance */
+                        return $instance->extend($driver, $callback);
         }
-        
-        /**
+                    /**
          * Assert that the given file exists.
          *
-         * @param string $path
-         * @return void 
+         * @param string|array $path
+         * @return \Illuminate\Filesystem\FilesystemAdapter 
          * @static 
          */ 
         public static function assertExists($path)
         {
-            \Illuminate\Filesystem\FilesystemAdapter::assertExists($path);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->assertExists($path);
         }
-        
-        /**
+                    /**
          * Assert that the given file does not exist.
          *
-         * @param string $path
-         * @return void 
+         * @param string|array $path
+         * @return \Illuminate\Filesystem\FilesystemAdapter 
          * @static 
          */ 
         public static function assertMissing($path)
         {
-            \Illuminate\Filesystem\FilesystemAdapter::assertMissing($path);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->assertMissing($path);
         }
-        
-        /**
+                    /**
          * Determine if a file exists.
          *
          * @param string $path
@@ -11372,10 +11815,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function exists($path)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::exists($path);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->exists($path);
+        }
+                    /**
+         * Determine if a file or directory is missing.
+         *
+         * @param string $path
+         * @return bool 
+         * @static 
+         */ 
+        public static function missing($path)
+        {
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->missing($path);
         }
-        
-        /**
+                    /**
          * Get the full path for the file at the given "short" path.
          *
          * @param string $path
@@ -11384,10 +11839,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function path($path)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::path($path);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->path($path);
         }
-        
-        /**
+                    /**
          * Get the contents of a file.
          *
          * @param string $path
@@ -11397,10 +11852,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function get($path)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::get($path);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->get($path);
         }
-        
-        /**
+                    /**
          * Create a streamed response for a given file.
          *
          * @param string $path
@@ -11410,12 +11865,12 @@ namespace Illuminate\Support\Facades {
          * @return \Symfony\Component\HttpFoundation\StreamedResponse 
          * @static 
          */ 
-        public static function response($path, $name = null, $headers = array(), $disposition = 'inline')
+        public static function response($path, $name = null, $headers = [], $disposition = 'inline')
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::response($path, $name, $headers, $disposition);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->response($path, $name, $headers, $disposition);
         }
-        
-        /**
+                    /**
          * Create a streamed download response for a given file.
          *
          * @param string $path
@@ -11424,12 +11879,12 @@ namespace Illuminate\Support\Facades {
          * @return \Symfony\Component\HttpFoundation\StreamedResponse 
          * @static 
          */ 
-        public static function download($path, $name = null, $headers = array())
+        public static function download($path, $name = null, $headers = [])
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::download($path, $name, $headers);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->download($path, $name, $headers);
         }
-        
-        /**
+                    /**
          * Write the contents of a file.
          *
          * @param string $path
@@ -11438,41 +11893,41 @@ namespace Illuminate\Support\Facades {
          * @return bool 
          * @static 
          */ 
-        public static function put($path, $contents, $options = array())
+        public static function put($path, $contents, $options = [])
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::put($path, $contents, $options);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->put($path, $contents, $options);
         }
-        
-        /**
+                    /**
          * Store the uploaded file on the disk.
          *
          * @param string $path
-         * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile $file
-         * @param array $options
+         * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile|string $file
+         * @param mixed $options
          * @return string|false 
          * @static 
          */ 
-        public static function putFile($path, $file, $options = array())
+        public static function putFile($path, $file, $options = [])
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::putFile($path, $file, $options);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->putFile($path, $file, $options);
         }
-        
-        /**
+                    /**
          * Store the uploaded file on the disk with a given name.
          *
          * @param string $path
-         * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile $file
+         * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile|string $file
          * @param string $name
-         * @param array $options
+         * @param mixed $options
          * @return string|false 
          * @static 
          */ 
-        public static function putFileAs($path, $file, $name, $options = array())
+        public static function putFileAs($path, $file, $name, $options = [])
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::putFileAs($path, $file, $name, $options);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->putFileAs($path, $file, $name, $options);
         }
-        
-        /**
+                    /**
          * Get the visibility for the given path.
          *
          * @param string $path
@@ -11481,51 +11936,53 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getVisibility($path)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::getVisibility($path);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->getVisibility($path);
         }
-        
-        /**
+                    /**
          * Set the visibility for the given path.
          *
          * @param string $path
          * @param string $visibility
-         * @return void 
+         * @return bool 
          * @static 
          */ 
         public static function setVisibility($path, $visibility)
         {
-            \Illuminate\Filesystem\FilesystemAdapter::setVisibility($path, $visibility);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->setVisibility($path, $visibility);
         }
-        
-        /**
+                    /**
          * Prepend to a file.
          *
          * @param string $path
          * @param string $data
          * @param string $separator
-         * @return int 
+         * @return bool 
          * @static 
          */ 
-        public static function prepend($path, $data, $separator = '')
+        public static function prepend($path, $data, $separator = '
+')
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::prepend($path, $data, $separator);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->prepend($path, $data, $separator);
         }
-        
-        /**
+                    /**
          * Append to a file.
          *
          * @param string $path
          * @param string $data
          * @param string $separator
-         * @return int 
+         * @return bool 
          * @static 
          */ 
-        public static function append($path, $data, $separator = '')
+        public static function append($path, $data, $separator = '
+')
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::append($path, $data, $separator);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->append($path, $data, $separator);
         }
-        
-        /**
+                    /**
          * Delete the file at a given path.
          *
          * @param string|array $paths
@@ -11534,10 +11991,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function delete($paths)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::delete($paths);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->delete($paths);
         }
-        
-        /**
+                    /**
          * Copy a file to a new location.
          *
          * @param string $from
@@ -11547,10 +12004,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function copy($from, $to)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::copy($from, $to);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->copy($from, $to);
         }
-        
-        /**
+                    /**
          * Move a file to a new location.
          *
          * @param string $from
@@ -11560,10 +12017,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function move($from, $to)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::move($from, $to);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->move($from, $to);
         }
-        
-        /**
+                    /**
          * Get the file size of a given file.
          *
          * @param string $path
@@ -11572,10 +12029,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function size($path)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::size($path);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->size($path);
         }
-        
-        /**
+                    /**
          * Get the mime-type of a given file.
          *
          * @param string $path
@@ -11584,10 +12041,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function mimeType($path)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::mimeType($path);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->mimeType($path);
         }
-        
-        /**
+                    /**
          * Get the file's last modification time.
          *
          * @param string $path
@@ -11596,66 +12053,82 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function lastModified($path)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::lastModified($path);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->lastModified($path);
         }
-        
-        /**
+                    /**
          * Get the URL for the file at the given path.
          *
          * @param string $path
          * @return string 
+         * @throws \RuntimeException
          * @static 
          */ 
         public static function url($path)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::url($path);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->url($path);
         }
-        
-        /**
-         * Get a temporary URL for the file at the given path.
+                    /**
+         * Get a resource to read the file.
          *
          * @param string $path
-         * @param \DateTimeInterface $expiration
+         * @return resource|null The path resource or null on failure.
+         * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
+         * @static 
+         */ 
+        public static function readStream($path)
+        {
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->readStream($path);
+        }
+                    /**
+         * Write a new file using a stream.
+         *
+         * @param string $path
+         * @param resource $resource
          * @param array $options
-         * @return string 
+         * @return bool 
+         * @throws \InvalidArgumentException If $resource is not a file handle.
+         * @throws \Illuminate\Contracts\Filesystem\FileExistsException
          * @static 
          */ 
-        public static function temporaryUrl($path, $expiration, $options = array())
+        public static function writeStream($path, $resource, $options = [])
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::temporaryUrl($path, $expiration, $options);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->writeStream($path, $resource, $options);
         }
-        
-        /**
+                    /**
          * Get a temporary URL for the file at the given path.
          *
-         * @param \League\Flysystem\AwsS3v3\AwsS3Adapter $adapter
          * @param string $path
          * @param \DateTimeInterface $expiration
          * @param array $options
          * @return string 
+         * @throws \RuntimeException
          * @static 
          */ 
-        public static function getAwsTemporaryUrl($adapter, $path, $expiration, $options)
+        public static function temporaryUrl($path, $expiration, $options = [])
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::getAwsTemporaryUrl($adapter, $path, $expiration, $options);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->temporaryUrl($path, $expiration, $options);
         }
-        
-        /**
+                    /**
          * Get a temporary URL for the file at the given path.
          *
-         * @param \League\Flysystem\Rackspace\RackspaceAdapter $adapter
+         * @param \League\Flysystem\AwsS3v3\AwsS3Adapter $adapter
          * @param string $path
          * @param \DateTimeInterface $expiration
          * @param array $options
          * @return string 
          * @static 
          */ 
-        public static function getRackspaceTemporaryUrl($adapter, $path, $expiration, $options)
+        public static function getAwsTemporaryUrl($adapter, $path, $expiration, $options)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::getRackspaceTemporaryUrl($adapter, $path, $expiration, $options);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->getAwsTemporaryUrl($adapter, $path, $expiration, $options);
         }
-        
-        /**
+                    /**
          * Get an array of all files in a directory.
          *
          * @param string|null $directory
@@ -11665,10 +12138,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function files($directory = null, $recursive = false)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::files($directory, $recursive);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->files($directory, $recursive);
         }
-        
-        /**
+                    /**
          * Get all of the files from the given directory (recursive).
          *
          * @param string|null $directory
@@ -11677,10 +12150,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function allFiles($directory = null)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::allFiles($directory);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->allFiles($directory);
         }
-        
-        /**
+                    /**
          * Get all of the directories within a given directory.
          *
          * @param string|null $directory
@@ -11690,10 +12163,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function directories($directory = null, $recursive = false)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::directories($directory, $recursive);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->directories($directory, $recursive);
         }
-        
-        /**
+                    /**
          * Get all (recursive) of the directories within a given directory.
          *
          * @param string|null $directory
@@ -11702,10 +12175,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function allDirectories($directory = null)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::allDirectories($directory);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->allDirectories($directory);
         }
-        
-        /**
+                    /**
          * Create a directory.
          *
          * @param string $path
@@ -11714,10 +12187,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function makeDirectory($path)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::makeDirectory($path);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->makeDirectory($path);
         }
-        
-        /**
+                    /**
          * Recursively delete a directory.
          *
          * @param string $directory
@@ -11726,10 +12199,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function deleteDirectory($directory)
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::deleteDirectory($directory);
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->deleteDirectory($directory);
         }
-        
-        /**
+                    /**
          * Flush the Flysystem cache.
          *
          * @return void 
@@ -11737,10 +12210,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flushCache()
         {
-            \Illuminate\Filesystem\FilesystemAdapter::flushCache();
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        $instance->flushCache();
         }
-        
-        /**
+                    /**
          * Get the Flysystem driver.
          *
          * @return \League\Flysystem\FilesystemInterface 
@@ -11748,19 +12221,18 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDriver()
         {
-            return \Illuminate\Filesystem\FilesystemAdapter::getDriver();
+                        /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
+                        return $instance->getDriver();
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Routing\UrlGenerator
      */ 
-    class URL {
-        
-        /**
+        class URL {
+                    /**
          * Get the full URL for the current request.
          *
          * @return string 
@@ -11768,10 +12240,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function full()
         {
-            return \Illuminate\Routing\UrlGenerator::full();
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->full();
         }
-        
-        /**
+                    /**
          * Get the current URL for the request.
          *
          * @return string 
@@ -11779,10 +12251,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function current()
         {
-            return \Illuminate\Routing\UrlGenerator::current();
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->current();
         }
-        
-        /**
+                    /**
          * Get the URL for the previous request.
          *
          * @param mixed $fallback
@@ -11791,10 +12263,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function previous($fallback = false)
         {
-            return \Illuminate\Routing\UrlGenerator::previous($fallback);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->previous($fallback);
         }
-        
-        /**
+                    /**
          * Generate an absolute URL to the given path.
          *
          * @param string $path
@@ -11803,12 +12275,12 @@ namespace Illuminate\Support\Facades {
          * @return string 
          * @static 
          */ 
-        public static function to($path, $extra = array(), $secure = null)
+        public static function to($path, $extra = [], $secure = null)
         {
-            return \Illuminate\Routing\UrlGenerator::to($path, $extra, $secure);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->to($path, $extra, $secure);
         }
-        
-        /**
+                    /**
          * Generate a secure, absolute URL to the given path.
          *
          * @param string $path
@@ -11816,12 +12288,12 @@ namespace Illuminate\Support\Facades {
          * @return string 
          * @static 
          */ 
-        public static function secure($path, $parameters = array())
+        public static function secure($path, $parameters = [])
         {
-            return \Illuminate\Routing\UrlGenerator::secure($path, $parameters);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->secure($path, $parameters);
         }
-        
-        /**
+                    /**
          * Generate the URL to an application asset.
          *
          * @param string $path
@@ -11831,10 +12303,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function asset($path, $secure = null)
         {
-            return \Illuminate\Routing\UrlGenerator::asset($path, $secure);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->asset($path, $secure);
         }
-        
-        /**
+                    /**
          * Generate the URL to a secure asset.
          *
          * @param string $path
@@ -11843,10 +12315,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function secureAsset($path)
         {
-            return \Illuminate\Routing\UrlGenerator::secureAsset($path);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->secureAsset($path);
         }
-        
-        /**
+                    /**
          * Generate the URL to an asset from a custom root domain such as CDN, etc.
          *
          * @param string $root
@@ -11857,92 +12329,136 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function assetFrom($root, $path, $secure = null)
         {
-            return \Illuminate\Routing\UrlGenerator::assetFrom($root, $path, $secure);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->assetFrom($root, $path, $secure);
         }
-        
-        /**
+                    /**
          * Get the default scheme for a raw URL.
          *
          * @param bool|null $secure
          * @return string 
          * @static 
          */ 
-        public static function formatScheme($secure)
+        public static function formatScheme($secure = null)
         {
-            return \Illuminate\Routing\UrlGenerator::formatScheme($secure);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->formatScheme($secure);
         }
-        
-        /**
+                    /**
          * Create a signed route URL for a named route.
          *
          * @param string $name
-         * @param array $parameters
-         * @param \DateTimeInterface|int $expiration
+         * @param mixed $parameters
+         * @param \DateTimeInterface|\DateInterval|int|null $expiration
+         * @param bool $absolute
          * @return string 
+         * @throws \InvalidArgumentException
          * @static 
          */ 
-        public static function signedRoute($name, $parameters = array(), $expiration = null)
+        public static function signedRoute($name, $parameters = [], $expiration = null, $absolute = true)
         {
-            return \Illuminate\Routing\UrlGenerator::signedRoute($name, $parameters, $expiration);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->signedRoute($name, $parameters, $expiration, $absolute);
         }
-        
-        /**
+                    /**
          * Create a temporary signed route URL for a named route.
          *
          * @param string $name
-         * @param \DateTimeInterface|int $expiration
+         * @param \DateTimeInterface|\DateInterval|int $expiration
          * @param array $parameters
+         * @param bool $absolute
          * @return string 
          * @static 
          */ 
-        public static function temporarySignedRoute($name, $expiration, $parameters = array())
+        public static function temporarySignedRoute($name, $expiration, $parameters = [], $absolute = true)
         {
-            return \Illuminate\Routing\UrlGenerator::temporarySignedRoute($name, $expiration, $parameters);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->temporarySignedRoute($name, $expiration, $parameters, $absolute);
         }
-        
-        /**
+                    /**
          * Determine if the given request has a valid signature.
          *
          * @param \Illuminate\Http\Request $request
+         * @param bool $absolute
+         * @return bool 
+         * @static 
+         */ 
+        public static function hasValidSignature($request, $absolute = true)
+        {
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->hasValidSignature($request, $absolute);
+        }
+                    /**
+         * Determine if the signature from the given request matches the URL.
+         *
+         * @param \Illuminate\Http\Request $request
+         * @param bool $absolute
+         * @return bool 
+         * @static 
+         */ 
+        public static function hasCorrectSignature($request, $absolute = true)
+        {
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->hasCorrectSignature($request, $absolute);
+        }
+                    /**
+         * Determine if the expires timestamp from the given request is not from the past.
+         *
+         * @param \Illuminate\Http\Request $request
          * @return bool 
          * @static 
          */ 
-        public static function hasValidSignature($request)
+        public static function signatureHasNotExpired($request)
         {
-            return \Illuminate\Routing\UrlGenerator::hasValidSignature($request);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->signatureHasNotExpired($request);
         }
-        
-        /**
+                    /**
          * Get the URL to a named route.
          *
          * @param string $name
          * @param mixed $parameters
          * @param bool $absolute
          * @return string 
-         * @throws \InvalidArgumentException
+         * @throws \Symfony\Component\Routing\Exception\RouteNotFoundException
+         * @static 
+         */ 
+        public static function route($name, $parameters = [], $absolute = true)
+        {
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->route($name, $parameters, $absolute);
+        }
+                    /**
+         * Get the URL for a given route instance.
+         *
+         * @param \Illuminate\Routing\Route $route
+         * @param mixed $parameters
+         * @param bool $absolute
+         * @return string 
+         * @throws \Illuminate\Routing\Exceptions\UrlGenerationException
          * @static 
          */ 
-        public static function route($name, $parameters = array(), $absolute = true)
+        public static function toRoute($route, $parameters, $absolute)
         {
-            return \Illuminate\Routing\UrlGenerator::route($name, $parameters, $absolute);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->toRoute($route, $parameters, $absolute);
         }
-        
-        /**
+                    /**
          * Get the URL to a controller action.
          *
-         * @param string $action
+         * @param string|array $action
          * @param mixed $parameters
          * @param bool $absolute
          * @return string 
          * @throws \InvalidArgumentException
          * @static 
          */ 
-        public static function action($action, $parameters = array(), $absolute = true)
+        public static function action($action, $parameters = [], $absolute = true)
         {
-            return \Illuminate\Routing\UrlGenerator::action($action, $parameters, $absolute);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->action($action, $parameters, $absolute);
         }
-        
-        /**
+                    /**
          * Format the array of URL parameters.
          *
          * @param mixed|array $parameters
@@ -11951,36 +12467,37 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function formatParameters($parameters)
         {
-            return \Illuminate\Routing\UrlGenerator::formatParameters($parameters);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->formatParameters($parameters);
         }
-        
-        /**
+                    /**
          * Get the base URL for the request.
          *
          * @param string $scheme
-         * @param string $root
+         * @param string|null $root
          * @return string 
          * @static 
          */ 
         public static function formatRoot($scheme, $root = null)
         {
-            return \Illuminate\Routing\UrlGenerator::formatRoot($scheme, $root);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->formatRoot($scheme, $root);
         }
-        
-        /**
+                    /**
          * Format the given URL segments into a single URL.
          *
          * @param string $root
          * @param string $path
+         * @param \Illuminate\Routing\Route|null $route
          * @return string 
          * @static 
          */ 
-        public static function format($root, $path)
+        public static function format($root, $path, $route = null)
         {
-            return \Illuminate\Routing\UrlGenerator::format($root, $path);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->format($root, $path, $route);
         }
-        
-        /**
+                    /**
          * Determine if the given path is a valid URL.
          *
          * @param string $path
@@ -11989,10 +12506,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function isValidUrl($path)
         {
-            return \Illuminate\Routing\UrlGenerator::isValidUrl($path);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->isValidUrl($path);
         }
-        
-        /**
+                    /**
          * Set the default named parameters used by the URL generator.
          *
          * @param array $defaults
@@ -12001,10 +12518,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function defaults($defaults)
         {
-            \Illuminate\Routing\UrlGenerator::defaults($defaults);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        $instance->defaults($defaults);
         }
-        
-        /**
+                    /**
          * Get the default named parameters used by the URL generator.
          *
          * @return array 
@@ -12012,22 +12529,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDefaultParameters()
         {
-            return \Illuminate\Routing\UrlGenerator::getDefaultParameters();
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->getDefaultParameters();
         }
-        
-        /**
+                    /**
          * Force the scheme for URLs.
          *
-         * @param string $schema
+         * @param string $scheme
          * @return void 
          * @static 
          */ 
-        public static function forceScheme($schema)
+        public static function forceScheme($scheme)
         {
-            \Illuminate\Routing\UrlGenerator::forceScheme($schema);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        $instance->forceScheme($scheme);
         }
-        
-        /**
+                    /**
          * Set the forced root URL.
          *
          * @param string $root
@@ -12036,34 +12553,34 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function forceRootUrl($root)
         {
-            \Illuminate\Routing\UrlGenerator::forceRootUrl($root);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        $instance->forceRootUrl($root);
         }
-        
-        /**
+                    /**
          * Set a callback to be used to format the host of generated URLs.
          *
          * @param \Closure $callback
-         * @return $this 
+         * @return \Illuminate\Routing\UrlGenerator 
          * @static 
          */ 
         public static function formatHostUsing($callback)
         {
-            return \Illuminate\Routing\UrlGenerator::formatHostUsing($callback);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->formatHostUsing($callback);
         }
-        
-        /**
+                    /**
          * Set a callback to be used to format the path of generated URLs.
          *
          * @param \Closure $callback
-         * @return $this 
+         * @return \Illuminate\Routing\UrlGenerator 
          * @static 
          */ 
         public static function formatPathUsing($callback)
         {
-            return \Illuminate\Routing\UrlGenerator::formatPathUsing($callback);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->formatPathUsing($callback);
         }
-        
-        /**
+                    /**
          * Get the path formatter being used by the URL generator.
          *
          * @return \Closure 
@@ -12071,10 +12588,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function pathFormatter()
         {
-            return \Illuminate\Routing\UrlGenerator::pathFormatter();
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->pathFormatter();
         }
-        
-        /**
+                    /**
          * Get the request instance.
          *
          * @return \Illuminate\Http\Request 
@@ -12082,10 +12599,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getRequest()
         {
-            return \Illuminate\Routing\UrlGenerator::getRequest();
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->getRequest();
         }
-        
-        /**
+                    /**
          * Set the current request instance.
          *
          * @param \Illuminate\Http\Request $request
@@ -12094,58 +12611,58 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setRequest($request)
         {
-            \Illuminate\Routing\UrlGenerator::setRequest($request);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        $instance->setRequest($request);
         }
-        
-        /**
+                    /**
          * Set the route collection.
          *
          * @param \Illuminate\Routing\RouteCollection $routes
-         * @return $this 
+         * @return \Illuminate\Routing\UrlGenerator 
          * @static 
          */ 
         public static function setRoutes($routes)
         {
-            return \Illuminate\Routing\UrlGenerator::setRoutes($routes);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->setRoutes($routes);
         }
-        
-        /**
+                    /**
          * Set the session resolver for the generator.
          *
          * @param callable $sessionResolver
-         * @return $this 
+         * @return \Illuminate\Routing\UrlGenerator 
          * @static 
          */ 
         public static function setSessionResolver($sessionResolver)
         {
-            return \Illuminate\Routing\UrlGenerator::setSessionResolver($sessionResolver);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->setSessionResolver($sessionResolver);
         }
-        
-        /**
+                    /**
          * Set the encryption key resolver.
          *
          * @param callable $keyResolver
-         * @return $this 
+         * @return \Illuminate\Routing\UrlGenerator 
          * @static 
          */ 
         public static function setKeyResolver($keyResolver)
         {
-            return \Illuminate\Routing\UrlGenerator::setKeyResolver($keyResolver);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->setKeyResolver($keyResolver);
         }
-        
-        /**
+                    /**
          * Set the root controller namespace.
          *
          * @param string $rootNamespace
-         * @return $this 
+         * @return \Illuminate\Routing\UrlGenerator 
          * @static 
          */ 
         public static function setRootControllerNamespace($rootNamespace)
         {
-            return \Illuminate\Routing\UrlGenerator::setRootControllerNamespace($rootNamespace);
+                        /** @var \Illuminate\Routing\UrlGenerator $instance */
+                        return $instance->setRootControllerNamespace($rootNamespace);
         }
-        
-        /**
+                    /**
          * Register a custom macro.
          *
          * @param string $name
@@ -12155,23 +12672,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function macro($name, $macro)
         {
-            \Illuminate\Routing\UrlGenerator::macro($name, $macro);
+                        \Illuminate\Routing\UrlGenerator::macro($name, $macro);
         }
-        
-        /**
+                    /**
          * Mix another object into the class.
          *
          * @param object $mixin
+         * @param bool $replace
          * @return void 
          * @throws \ReflectionException
          * @static 
          */ 
-        public static function mixin($mixin)
+        public static function mixin($mixin, $replace = true)
         {
-            \Illuminate\Routing\UrlGenerator::mixin($mixin);
+                        \Illuminate\Routing\UrlGenerator::mixin($mixin, $replace);
         }
-        
-        /**
+                    /**
          * Checks if macro is registered.
          *
          * @param string $name
@@ -12180,19 +12696,17 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasMacro($name)
         {
-            return \Illuminate\Routing\UrlGenerator::hasMacro($name);
+                        return \Illuminate\Routing\UrlGenerator::hasMacro($name);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\Validation\Factory
      */ 
-    class Validator {
-        
-        /**
+        class Validator {
+                    /**
          * Create a new Validator instance.
          *
          * @param array $data
@@ -12202,12 +12716,12 @@ namespace Illuminate\Support\Facades {
          * @return \Illuminate\Validation\Validator 
          * @static 
          */ 
-        public static function make($data, $rules, $messages = array(), $customAttributes = array())
+        public static function make($data, $rules, $messages = [], $customAttributes = [])
         {
-            return \Illuminate\Validation\Factory::make($data, $rules, $messages, $customAttributes);
+                        /** @var \Illuminate\Validation\Factory $instance */
+                        return $instance->make($data, $rules, $messages, $customAttributes);
         }
-        
-        /**
+                    /**
          * Validate the given data against the provided rules.
          *
          * @param array $data
@@ -12218,54 +12732,54 @@ namespace Illuminate\Support\Facades {
          * @throws \Illuminate\Validation\ValidationException
          * @static 
          */ 
-        public static function validate($data, $rules, $messages = array(), $customAttributes = array())
+        public static function validate($data, $rules, $messages = [], $customAttributes = [])
         {
-            return \Illuminate\Validation\Factory::validate($data, $rules, $messages, $customAttributes);
+                        /** @var \Illuminate\Validation\Factory $instance */
+                        return $instance->validate($data, $rules, $messages, $customAttributes);
         }
-        
-        /**
+                    /**
          * Register a custom validator extension.
          *
          * @param string $rule
          * @param \Closure|string $extension
-         * @param string $message
+         * @param string|null $message
          * @return void 
          * @static 
          */ 
         public static function extend($rule, $extension, $message = null)
         {
-            \Illuminate\Validation\Factory::extend($rule, $extension, $message);
+                        /** @var \Illuminate\Validation\Factory $instance */
+                        $instance->extend($rule, $extension, $message);
         }
-        
-        /**
+                    /**
          * Register a custom implicit validator extension.
          *
          * @param string $rule
          * @param \Closure|string $extension
-         * @param string $message
+         * @param string|null $message
          * @return void 
          * @static 
          */ 
         public static function extendImplicit($rule, $extension, $message = null)
         {
-            \Illuminate\Validation\Factory::extendImplicit($rule, $extension, $message);
+                        /** @var \Illuminate\Validation\Factory $instance */
+                        $instance->extendImplicit($rule, $extension, $message);
         }
-        
-        /**
+                    /**
          * Register a custom dependent validator extension.
          *
          * @param string $rule
          * @param \Closure|string $extension
-         * @param string $message
+         * @param string|null $message
          * @return void 
          * @static 
          */ 
         public static function extendDependent($rule, $extension, $message = null)
         {
-            \Illuminate\Validation\Factory::extendDependent($rule, $extension, $message);
+                        /** @var \Illuminate\Validation\Factory $instance */
+                        $instance->extendDependent($rule, $extension, $message);
         }
-        
-        /**
+                    /**
          * Register a custom validator message replacer.
          *
          * @param string $rule
@@ -12275,10 +12789,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function replacer($rule, $replacer)
         {
-            \Illuminate\Validation\Factory::replacer($rule, $replacer);
+                        /** @var \Illuminate\Validation\Factory $instance */
+                        $instance->replacer($rule, $replacer);
         }
-        
-        /**
+                    /**
          * Set the Validator instance resolver.
          *
          * @param \Closure $resolver
@@ -12287,10 +12801,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function resolver($resolver)
         {
-            \Illuminate\Validation\Factory::resolver($resolver);
+                        /** @var \Illuminate\Validation\Factory $instance */
+                        $instance->resolver($resolver);
         }
-        
-        /**
+                    /**
          * Get the Translator implementation.
          *
          * @return \Illuminate\Contracts\Translation\Translator 
@@ -12298,10 +12812,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getTranslator()
         {
-            return \Illuminate\Validation\Factory::getTranslator();
+                        /** @var \Illuminate\Validation\Factory $instance */
+                        return $instance->getTranslator();
         }
-        
-        /**
+                    /**
          * Get the Presence Verifier implementation.
          *
          * @return \Illuminate\Validation\PresenceVerifierInterface 
@@ -12309,10 +12823,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getPresenceVerifier()
         {
-            return \Illuminate\Validation\Factory::getPresenceVerifier();
+                        /** @var \Illuminate\Validation\Factory $instance */
+                        return $instance->getPresenceVerifier();
         }
-        
-        /**
+                    /**
          * Set the Presence Verifier implementation.
          *
          * @param \Illuminate\Validation\PresenceVerifierInterface $presenceVerifier
@@ -12321,77 +12835,76 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setPresenceVerifier($presenceVerifier)
         {
-            \Illuminate\Validation\Factory::setPresenceVerifier($presenceVerifier);
+                        /** @var \Illuminate\Validation\Factory $instance */
+                        $instance->setPresenceVerifier($presenceVerifier);
         }
          
     }
-
-    /**
+            /**
      * 
      *
      * @see \Illuminate\View\Factory
      */ 
-    class View {
-        
-        /**
+        class View {
+                    /**
          * Get the evaluated view contents for the given view.
          *
          * @param string $path
-         * @param array $data
+         * @param \Illuminate\Contracts\Support\Arrayable|array $data
          * @param array $mergeData
          * @return \Illuminate\Contracts\View\View 
          * @static 
          */ 
-        public static function file($path, $data = array(), $mergeData = array())
+        public static function file($path, $data = [], $mergeData = [])
         {
-            return \Illuminate\View\Factory::file($path, $data, $mergeData);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->file($path, $data, $mergeData);
         }
-        
-        /**
+                    /**
          * Get the evaluated view contents for the given view.
          *
          * @param string $view
-         * @param array $data
+         * @param \Illuminate\Contracts\Support\Arrayable|array $data
          * @param array $mergeData
          * @return \Illuminate\Contracts\View\View 
          * @static 
          */ 
-        public static function make($view, $data = array(), $mergeData = array())
+        public static function make($view, $data = [], $mergeData = [])
         {
-            return \Illuminate\View\Factory::make($view, $data, $mergeData);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->make($view, $data, $mergeData);
         }
-        
-        /**
+                    /**
          * Get the first view that actually exists from the given list.
          *
          * @param array $views
-         * @param array $data
+         * @param \Illuminate\Contracts\Support\Arrayable|array $data
          * @param array $mergeData
          * @return \Illuminate\Contracts\View\View 
          * @throws \InvalidArgumentException
          * @static 
          */ 
-        public static function first($views, $data = array(), $mergeData = array())
+        public static function first($views, $data = [], $mergeData = [])
         {
-            return \Illuminate\View\Factory::first($views, $data, $mergeData);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->first($views, $data, $mergeData);
         }
-        
-        /**
+                    /**
          * Get the rendered content of the view based on a given condition.
          *
          * @param bool $condition
          * @param string $view
-         * @param array $data
+         * @param \Illuminate\Contracts\Support\Arrayable|array $data
          * @param array $mergeData
          * @return string 
          * @static 
          */ 
-        public static function renderWhen($condition, $view, $data = array(), $mergeData = array())
+        public static function renderWhen($condition, $view, $data = [], $mergeData = [])
         {
-            return \Illuminate\View\Factory::renderWhen($condition, $view, $data, $mergeData);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->renderWhen($condition, $view, $data, $mergeData);
         }
-        
-        /**
+                    /**
          * Get the rendered contents of a partial from a loop.
          *
          * @param string $view
@@ -12403,10 +12916,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function renderEach($view, $data, $iterator, $empty = 'raw|')
         {
-            return \Illuminate\View\Factory::renderEach($view, $data, $iterator, $empty);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->renderEach($view, $data, $iterator, $empty);
         }
-        
-        /**
+                    /**
          * Determine if a given view exists.
          *
          * @param string $view
@@ -12415,10 +12928,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function exists($view)
         {
-            return \Illuminate\View\Factory::exists($view);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->exists($view);
         }
-        
-        /**
+                    /**
          * Get the appropriate view engine for the given path.
          *
          * @param string $path
@@ -12428,23 +12941,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getEngineFromPath($path)
         {
-            return \Illuminate\View\Factory::getEngineFromPath($path);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->getEngineFromPath($path);
         }
-        
-        /**
+                    /**
          * Add a piece of shared data to the environment.
          *
          * @param array|string $key
-         * @param mixed $value
+         * @param mixed|null $value
          * @return mixed 
          * @static 
          */ 
         public static function share($key, $value = null)
         {
-            return \Illuminate\View\Factory::share($key, $value);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->share($key, $value);
         }
-        
-        /**
+                    /**
          * Increment the rendering counter.
          *
          * @return void 
@@ -12452,10 +12965,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function incrementRender()
         {
-            \Illuminate\View\Factory::incrementRender();
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->incrementRender();
         }
-        
-        /**
+                    /**
          * Decrement the rendering counter.
          *
          * @return void 
@@ -12463,10 +12976,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function decrementRender()
         {
-            \Illuminate\View\Factory::decrementRender();
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->decrementRender();
         }
-        
-        /**
+                    /**
          * Check if there are no active render operations.
          *
          * @return bool 
@@ -12474,10 +12987,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function doneRendering()
         {
-            return \Illuminate\View\Factory::doneRendering();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->doneRendering();
         }
-        
-        /**
+                    /**
          * Add a location to the array of view locations.
          *
          * @param string $location
@@ -12486,63 +12999,63 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function addLocation($location)
         {
-            \Illuminate\View\Factory::addLocation($location);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->addLocation($location);
         }
-        
-        /**
+                    /**
          * Add a new namespace to the loader.
          *
          * @param string $namespace
          * @param string|array $hints
-         * @return $this 
+         * @return \Illuminate\View\Factory 
          * @static 
          */ 
         public static function addNamespace($namespace, $hints)
         {
-            return \Illuminate\View\Factory::addNamespace($namespace, $hints);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->addNamespace($namespace, $hints);
         }
-        
-        /**
+                    /**
          * Prepend a new namespace to the loader.
          *
          * @param string $namespace
          * @param string|array $hints
-         * @return $this 
+         * @return \Illuminate\View\Factory 
          * @static 
          */ 
         public static function prependNamespace($namespace, $hints)
         {
-            return \Illuminate\View\Factory::prependNamespace($namespace, $hints);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->prependNamespace($namespace, $hints);
         }
-        
-        /**
+                    /**
          * Replace the namespace hints for the given namespace.
          *
          * @param string $namespace
          * @param string|array $hints
-         * @return $this 
+         * @return \Illuminate\View\Factory 
          * @static 
          */ 
         public static function replaceNamespace($namespace, $hints)
         {
-            return \Illuminate\View\Factory::replaceNamespace($namespace, $hints);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->replaceNamespace($namespace, $hints);
         }
-        
-        /**
+                    /**
          * Register a valid view extension and its engine.
          *
          * @param string $extension
          * @param string $engine
-         * @param \Closure $resolver
+         * @param \Closure|null $resolver
          * @return void 
          * @static 
          */ 
         public static function addExtension($extension, $engine, $resolver = null)
         {
-            \Illuminate\View\Factory::addExtension($extension, $engine, $resolver);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->addExtension($extension, $engine, $resolver);
         }
-        
-        /**
+                    /**
          * Flush all of the factory state like sections and stacks.
          *
          * @return void 
@@ -12550,10 +13063,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flushState()
         {
-            \Illuminate\View\Factory::flushState();
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->flushState();
         }
-        
-        /**
+                    /**
          * Flush all of the section contents if done rendering.
          *
          * @return void 
@@ -12561,10 +13074,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flushStateIfDoneRendering()
         {
-            \Illuminate\View\Factory::flushStateIfDoneRendering();
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->flushStateIfDoneRendering();
         }
-        
-        /**
+                    /**
          * Get the extension to engine bindings.
          *
          * @return array 
@@ -12572,10 +13085,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getExtensions()
         {
-            return \Illuminate\View\Factory::getExtensions();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->getExtensions();
         }
-        
-        /**
+                    /**
          * Get the engine resolver instance.
          *
          * @return \Illuminate\View\Engines\EngineResolver 
@@ -12583,10 +13096,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getEngineResolver()
         {
-            return \Illuminate\View\Factory::getEngineResolver();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->getEngineResolver();
         }
-        
-        /**
+                    /**
          * Get the view finder instance.
          *
          * @return \Illuminate\View\ViewFinderInterface 
@@ -12594,10 +13107,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getFinder()
         {
-            return \Illuminate\View\Factory::getFinder();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->getFinder();
         }
-        
-        /**
+                    /**
          * Set the view finder instance.
          *
          * @param \Illuminate\View\ViewFinderInterface $finder
@@ -12606,10 +13119,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setFinder($finder)
         {
-            \Illuminate\View\Factory::setFinder($finder);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->setFinder($finder);
         }
-        
-        /**
+                    /**
          * Flush the cache of views located by the finder.
          *
          * @return void 
@@ -12617,10 +13130,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flushFinderCache()
         {
-            \Illuminate\View\Factory::flushFinderCache();
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->flushFinderCache();
         }
-        
-        /**
+                    /**
          * Get the event dispatcher instance.
          *
          * @return \Illuminate\Contracts\Events\Dispatcher 
@@ -12628,10 +13141,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getDispatcher()
         {
-            return \Illuminate\View\Factory::getDispatcher();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->getDispatcher();
         }
-        
-        /**
+                    /**
          * Set the event dispatcher instance.
          *
          * @param \Illuminate\Contracts\Events\Dispatcher $events
@@ -12640,10 +13153,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setDispatcher($events)
         {
-            \Illuminate\View\Factory::setDispatcher($events);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->setDispatcher($events);
         }
-        
-        /**
+                    /**
          * Get the IoC container instance.
          *
          * @return \Illuminate\Contracts\Container\Container 
@@ -12651,10 +13164,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getContainer()
         {
-            return \Illuminate\View\Factory::getContainer();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->getContainer();
         }
-        
-        /**
+                    /**
          * Set the IoC container instance.
          *
          * @param \Illuminate\Contracts\Container\Container $container
@@ -12663,10 +13176,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function setContainer($container)
         {
-            \Illuminate\View\Factory::setContainer($container);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->setContainer($container);
         }
-        
-        /**
+                    /**
          * Get an item from the shared data.
          *
          * @param string $key
@@ -12676,10 +13189,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function shared($key, $default = null)
         {
-            return \Illuminate\View\Factory::shared($key, $default);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->shared($key, $default);
         }
-        
-        /**
+                    /**
          * Get all of the shared data for the environment.
          *
          * @return array 
@@ -12687,10 +13200,46 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getShared()
         {
-            return \Illuminate\View\Factory::getShared();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->getShared();
+        }
+                    /**
+         * Register a custom macro.
+         *
+         * @param string $name
+         * @param object|callable $macro
+         * @return void 
+         * @static 
+         */ 
+        public static function macro($name, $macro)
+        {
+                        \Illuminate\View\Factory::macro($name, $macro);
+        }
+                    /**
+         * Mix another object into the class.
+         *
+         * @param object $mixin
+         * @param bool $replace
+         * @return void 
+         * @throws \ReflectionException
+         * @static 
+         */ 
+        public static function mixin($mixin, $replace = true)
+        {
+                        \Illuminate\View\Factory::mixin($mixin, $replace);
+        }
+                    /**
+         * Checks if macro is registered.
+         *
+         * @param string $name
+         * @return bool 
+         * @static 
+         */ 
+        public static function hasMacro($name)
+        {
+                        return \Illuminate\View\Factory::hasMacro($name);
         }
-        
-        /**
+                    /**
          * Start a component rendering process.
          *
          * @param string $name
@@ -12698,12 +13247,25 @@ namespace Illuminate\Support\Facades {
          * @return void 
          * @static 
          */ 
-        public static function startComponent($name, $data = array())
+        public static function startComponent($name, $data = [])
+        {
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->startComponent($name, $data);
+        }
+                    /**
+         * Get the first view that actually exists from the given list, and start a component.
+         *
+         * @param array $names
+         * @param array $data
+         * @return void 
+         * @static 
+         */ 
+        public static function startComponentFirst($names, $data = [])
         {
-            \Illuminate\View\Factory::startComponent($name, $data);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->startComponentFirst($names, $data);
         }
-        
-        /**
+                    /**
          * Render the current component.
          *
          * @return string 
@@ -12711,10 +13273,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function renderComponent()
         {
-            return \Illuminate\View\Factory::renderComponent();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->renderComponent();
         }
-        
-        /**
+                    /**
          * Start the slot rendering process.
          *
          * @param string $name
@@ -12724,10 +13286,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function slot($name, $content = null)
         {
-            \Illuminate\View\Factory::slot($name, $content);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->slot($name, $content);
         }
-        
-        /**
+                    /**
          * Save the slot content for rendering.
          *
          * @return void 
@@ -12735,10 +13297,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function endSlot()
         {
-            \Illuminate\View\Factory::endSlot();
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->endSlot();
         }
-        
-        /**
+                    /**
          * Register a view creator event.
          *
          * @param array|string $views
@@ -12748,10 +13310,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function creator($views, $callback)
         {
-            return \Illuminate\View\Factory::creator($views, $callback);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->creator($views, $callback);
         }
-        
-        /**
+                    /**
          * Register multiple view composers via an array.
          *
          * @param array $composers
@@ -12760,10 +13322,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function composers($composers)
         {
-            return \Illuminate\View\Factory::composers($composers);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->composers($composers);
         }
-        
-        /**
+                    /**
          * Register a view composer event.
          *
          * @param array|string $views
@@ -12773,10 +13335,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function composer($views, $callback)
         {
-            return \Illuminate\View\Factory::composer($views, $callback);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->composer($views, $callback);
         }
-        
-        /**
+                    /**
          * Call the composer for a given view.
          *
          * @param \Illuminate\Contracts\View\View $view
@@ -12785,10 +13347,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function callComposer($view)
         {
-            \Illuminate\View\Factory::callComposer($view);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->callComposer($view);
         }
-        
-        /**
+                    /**
          * Call the creator for a given view.
          *
          * @param \Illuminate\Contracts\View\View $view
@@ -12797,10 +13359,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function callCreator($view)
         {
-            \Illuminate\View\Factory::callCreator($view);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->callCreator($view);
         }
-        
-        /**
+                    /**
          * Start injecting content into a section.
          *
          * @param string $section
@@ -12810,10 +13372,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function startSection($section, $content = null)
         {
-            \Illuminate\View\Factory::startSection($section, $content);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->startSection($section, $content);
         }
-        
-        /**
+                    /**
          * Inject inline content into a section.
          *
          * @param string $section
@@ -12823,10 +13385,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function inject($section, $content)
         {
-            \Illuminate\View\Factory::inject($section, $content);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->inject($section, $content);
         }
-        
-        /**
+                    /**
          * Stop injecting content into a section and return its contents.
          *
          * @return string 
@@ -12834,10 +13396,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function yieldSection()
         {
-            return \Illuminate\View\Factory::yieldSection();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->yieldSection();
         }
-        
-        /**
+                    /**
          * Stop injecting content into a section.
          *
          * @param bool $overwrite
@@ -12847,10 +13409,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function stopSection($overwrite = false)
         {
-            return \Illuminate\View\Factory::stopSection($overwrite);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->stopSection($overwrite);
         }
-        
-        /**
+                    /**
          * Stop injecting content into a section and append it.
          *
          * @return string 
@@ -12859,10 +13421,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function appendSection()
         {
-            return \Illuminate\View\Factory::appendSection();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->appendSection();
         }
-        
-        /**
+                    /**
          * Get the string contents of a section.
          *
          * @param string $section
@@ -12872,10 +13434,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function yieldContent($section, $default = '')
         {
-            return \Illuminate\View\Factory::yieldContent($section, $default);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->yieldContent($section, $default);
         }
-        
-        /**
+                    /**
          * Get the parent placeholder for the current request.
          *
          * @param string $section
@@ -12884,10 +13446,9 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function parentPlaceholder($section = '')
         {
-            return \Illuminate\View\Factory::parentPlaceholder($section);
+                        return \Illuminate\View\Factory::parentPlaceholder($section);
         }
-        
-        /**
+                    /**
          * Check if section exists.
          *
          * @param string $name
@@ -12896,23 +13457,23 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function hasSection($name)
         {
-            return \Illuminate\View\Factory::hasSection($name);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->hasSection($name);
         }
-        
-        /**
+                    /**
          * Get the contents of a section.
          *
          * @param string $name
-         * @param string $default
+         * @param string|null $default
          * @return mixed 
          * @static 
          */ 
         public static function getSection($name, $default = null)
         {
-            return \Illuminate\View\Factory::getSection($name, $default);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->getSection($name, $default);
         }
-        
-        /**
+                    /**
          * Get the entire array of sections.
          *
          * @return array 
@@ -12920,10 +13481,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getSections()
         {
-            return \Illuminate\View\Factory::getSections();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->getSections();
         }
-        
-        /**
+                    /**
          * Flush all of the sections.
          *
          * @return void 
@@ -12931,10 +13492,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flushSections()
         {
-            \Illuminate\View\Factory::flushSections();
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->flushSections();
         }
-        
-        /**
+                    /**
          * Add new loop to the stack.
          *
          * @param \Countable|array $data
@@ -12943,10 +13504,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function addLoop($data)
         {
-            \Illuminate\View\Factory::addLoop($data);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->addLoop($data);
         }
-        
-        /**
+                    /**
          * Increment the top loop's indices.
          *
          * @return void 
@@ -12954,10 +13515,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function incrementLoopIndices()
         {
-            \Illuminate\View\Factory::incrementLoopIndices();
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->incrementLoopIndices();
         }
-        
-        /**
+                    /**
          * Pop a loop from the top of the loop stack.
          *
          * @return void 
@@ -12965,10 +13526,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function popLoop()
         {
-            \Illuminate\View\Factory::popLoop();
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->popLoop();
         }
-        
-        /**
+                    /**
          * Get an instance of the last loop in the stack.
          *
          * @return \stdClass|null 
@@ -12976,10 +13537,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getLastLoop()
         {
-            return \Illuminate\View\Factory::getLastLoop();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->getLastLoop();
         }
-        
-        /**
+                    /**
          * Get the entire loop stack.
          *
          * @return array 
@@ -12987,10 +13548,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function getLoopStack()
         {
-            return \Illuminate\View\Factory::getLoopStack();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->getLoopStack();
         }
-        
-        /**
+                    /**
          * Start injecting content into a push section.
          *
          * @param string $section
@@ -13000,10 +13561,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function startPush($section, $content = '')
         {
-            \Illuminate\View\Factory::startPush($section, $content);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->startPush($section, $content);
         }
-        
-        /**
+                    /**
          * Stop injecting content into a push section.
          *
          * @return string 
@@ -13012,10 +13573,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function stopPush()
         {
-            return \Illuminate\View\Factory::stopPush();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->stopPush();
         }
-        
-        /**
+                    /**
          * Start prepending content into a push section.
          *
          * @param string $section
@@ -13025,10 +13586,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function startPrepend($section, $content = '')
         {
-            \Illuminate\View\Factory::startPrepend($section, $content);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->startPrepend($section, $content);
         }
-        
-        /**
+                    /**
          * Stop prepending content into a push section.
          *
          * @return string 
@@ -13037,10 +13598,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function stopPrepend()
         {
-            return \Illuminate\View\Factory::stopPrepend();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->stopPrepend();
         }
-        
-        /**
+                    /**
          * Get the string contents of a push section.
          *
          * @param string $section
@@ -13050,10 +13611,10 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function yieldPushContent($section, $default = '')
         {
-            return \Illuminate\View\Factory::yieldPushContent($section, $default);
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->yieldPushContent($section, $default);
         }
-        
-        /**
+                    /**
          * Flush all of the stacks.
          *
          * @return void 
@@ -13061,22 +13622,22 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function flushStacks()
         {
-            \Illuminate\View\Factory::flushStacks();
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->flushStacks();
         }
-        
-        /**
+                    /**
          * Start a translation block.
          *
          * @param array $replacements
          * @return void 
          * @static 
          */ 
-        public static function startTranslation($replacements = array())
+        public static function startTranslation($replacements = [])
         {
-            \Illuminate\View\Factory::startTranslation($replacements);
+                        /** @var \Illuminate\View\Factory $instance */
+                        $instance->startTranslation($replacements);
         }
-        
-        /**
+                    /**
          * Render the current translation.
          *
          * @return string 
@@ -13084,175 +13645,240 @@ namespace Illuminate\Support\Facades {
          */ 
         public static function renderTranslation()
         {
-            return \Illuminate\View\Factory::renderTranslation();
+                        /** @var \Illuminate\View\Factory $instance */
+                        return $instance->renderTranslation();
         }
          
     }
- 
+     
 }
 
-namespace App\Mongo { 
-
-    /**
+        namespace Illuminate\Http { 
+            /**
      * 
      *
      */ 
-    class Facade {
-        
-        /**
+        class Request {
+                    /**
+         * 
+         *
+         * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation()
+         * @param array $rules
+         * @param mixed $params
+         * @static 
+         */ 
+        public static function validate($rules, ...$params)
+        {
+                        return \Illuminate\Http\Request::validate($rules, ...$params);
+        }
+                    /**
          * 
          *
+         * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation()
+         * @param string $errorBag
+         * @param array $rules
+         * @param mixed $params
+         * @static 
+         */ 
+        public static function validateWithBag($errorBag, $rules, ...$params)
+        {
+                        return \Illuminate\Http\Request::validateWithBag($errorBag, $rules, ...$params);
+        }
+                    /**
+         * 
+         *
+         * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation()
+         * @param mixed $absolute
          * @static 
          */ 
-        public static function get()
+        public static function hasValidSignature($absolute = true)
         {
-            return \App\Mongo\Service::get();
+                        return \Illuminate\Http\Request::hasValidSignature($absolute);
         }
          
     }
- 
+     
 }
 
 
 namespace  { 
-
-    class App extends \Illuminate\Support\Facades\App {}
-
-    class Artisan extends \Illuminate\Support\Facades\Artisan {}
-
-    class Auth extends \Illuminate\Support\Facades\Auth {}
-
-    class Blade extends \Illuminate\Support\Facades\Blade {}
-
-    class Broadcast extends \Illuminate\Support\Facades\Broadcast {}
-
-    class Bus extends \Illuminate\Support\Facades\Bus {}
-
-    class Cache extends \Illuminate\Support\Facades\Cache {}
-
-    class Config extends \Illuminate\Support\Facades\Config {}
-
-    class Cookie extends \Illuminate\Support\Facades\Cookie {}
-
-    class Crypt extends \Illuminate\Support\Facades\Crypt {}
-
-    class DB extends \Illuminate\Support\Facades\DB {}
-
-    class Eloquent extends \Illuminate\Database\Eloquent\Model {         
-            /**
+            class App extends \Illuminate\Support\Facades\App {}
+            class Artisan extends \Illuminate\Support\Facades\Artisan {}
+            class Auth extends \Illuminate\Support\Facades\Auth {}
+            class Blade extends \Illuminate\Support\Facades\Blade {}
+            class Broadcast extends \Illuminate\Support\Facades\Broadcast {}
+            class Bus extends \Illuminate\Support\Facades\Bus {}
+            class Cache extends \Illuminate\Support\Facades\Cache {}
+            class Config extends \Illuminate\Support\Facades\Config {}
+            class Cookie extends \Illuminate\Support\Facades\Cookie {}
+            class Crypt extends \Illuminate\Support\Facades\Crypt {}
+            class DB extends \Illuminate\Support\Facades\DB {}
+            class Eloquent extends \Illuminate\Database\Eloquent\Model {             
+                /**
              * Create and return an un-saved model instance.
              *
              * @param array $attributes
-             * @return \Illuminate\Database\Eloquent\Model 
+             * @return \Illuminate\Database\Eloquent\Model|static 
              * @static 
              */ 
-            public static function make($attributes = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::make($attributes);
+            public static function make($attributes = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->make($attributes);
             }
-         
-            /**
+             
+                /**
              * Register a new global scope.
              *
              * @param string $identifier
              * @param \Illuminate\Database\Eloquent\Scope|\Closure $scope
-             * @return $this 
+             * @return \Illuminate\Database\Eloquent\Builder|static 
              * @static 
              */ 
             public static function withGlobalScope($identifier, $scope)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::withGlobalScope($identifier, $scope);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->withGlobalScope($identifier, $scope);
             }
-         
-            /**
+             
+                /**
              * Remove a registered global scope.
              *
              * @param \Illuminate\Database\Eloquent\Scope|string $scope
-             * @return $this 
+             * @return \Illuminate\Database\Eloquent\Builder|static 
              * @static 
              */ 
             public static function withoutGlobalScope($scope)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::withoutGlobalScope($scope);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->withoutGlobalScope($scope);
             }
-         
-            /**
+             
+                /**
              * Remove all or passed registered global scopes.
              *
              * @param array|null $scopes
-             * @return $this 
+             * @return \Illuminate\Database\Eloquent\Builder|static 
              * @static 
              */ 
             public static function withoutGlobalScopes($scopes = null)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::withoutGlobalScopes($scopes);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->withoutGlobalScopes($scopes);
             }
-         
-            /**
+             
+                /**
              * Get an array of global scopes that were removed from the query.
              *
              * @return array 
              * @static 
              */ 
             public static function removedScopes()
-            {    
-                return \Illuminate\Database\Eloquent\Builder::removedScopes();
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->removedScopes();
             }
-         
-            /**
+             
+                /**
              * Add a where clause on the primary key to the query.
              *
              * @param mixed $id
-             * @return $this 
+             * @return \Illuminate\Database\Eloquent\Builder|static 
              * @static 
              */ 
             public static function whereKey($id)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::whereKey($id);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->whereKey($id);
             }
-         
-            /**
+             
+                /**
              * Add a where clause on the primary key to the query.
              *
              * @param mixed $id
-             * @return $this 
+             * @return \Illuminate\Database\Eloquent\Builder|static 
              * @static 
              */ 
             public static function whereKeyNot($id)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::whereKeyNot($id);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->whereKeyNot($id);
             }
-         
-            /**
+             
+                /**
              * Add a basic where clause to the query.
              *
-             * @param string|array|\Closure $column
+             * @param \Closure|string|array|\Illuminate\Database\Query\Expression $column
              * @param mixed $operator
              * @param mixed $value
              * @param string $boolean
-             * @return $this 
+             * @return \Illuminate\Database\Eloquent\Builder|static 
              * @static 
              */ 
             public static function where($column, $operator = null, $value = null, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Eloquent\Builder::where($column, $operator, $value, $boolean);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->where($column, $operator, $value, $boolean);
             }
-         
-            /**
-             * Add an "or where" clause to the query.
+             
+                /**
+             * Add a basic where clause to the query, and return the first result.
              *
-             * @param \Closure|array|string $column
+             * @param \Closure|string|array|\Illuminate\Database\Query\Expression $column
              * @param mixed $operator
              * @param mixed $value
-             * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @param string $boolean
+             * @return \Illuminate\Database\Eloquent\Model|static 
              * @static 
              */ 
-            public static function orWhere($column, $operator = null, $value = null)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::orWhere($column, $operator, $value);
+            public static function firstWhere($column, $operator = null, $value = null, $boolean = 'and')
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->firstWhere($column, $operator, $value, $boolean);
             }
-         
-            /**
+             
+                /**
+             * Add an "or where" clause to the query.
+             *
+             * @param \Closure|array|string|\Illuminate\Database\Query\Expression $column
+             * @param mixed $operator
+             * @param mixed $value
+             * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @static 
+             */ 
+            public static function orWhere($column, $operator = null, $value = null)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->orWhere($column, $operator, $value);
+            }
+             
+                /**
+             * Add an "order by" clause for a timestamp to the query.
+             *
+             * @param string|\Illuminate\Database\Query\Expression $column
+             * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @static 
+             */ 
+            public static function latest($column = null)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->latest($column);
+            }
+             
+                /**
+             * Add an "order by" clause for a timestamp to the query.
+             *
+             * @param string|\Illuminate\Database\Query\Expression $column
+             * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @static 
+             */ 
+            public static function oldest($column = null)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->oldest($column);
+            }
+             
+                /**
              * Create a collection of models from plain arrays.
              *
              * @param array $items
@@ -13260,11 +13886,12 @@ namespace  {
              * @static 
              */ 
             public static function hydrate($items)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::hydrate($items);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->hydrate($items);
             }
-         
-            /**
+             
+                /**
              * Create a collection of models from a raw query.
              *
              * @param string $query
@@ -13272,12 +13899,13 @@ namespace  {
              * @return \Illuminate\Database\Eloquent\Collection 
              * @static 
              */ 
-            public static function fromQuery($query, $bindings = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::fromQuery($query, $bindings);
+            public static function fromQuery($query, $bindings = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->fromQuery($query, $bindings);
             }
-         
-            /**
+             
+                /**
              * Find a model by its primary key.
              *
              * @param mixed $id
@@ -13285,12 +13913,13 @@ namespace  {
              * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static[]|static|null 
              * @static 
              */ 
-            public static function find($id, $columns = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::find($id, $columns);
+            public static function find($id, $columns = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->find($id, $columns);
             }
-         
-            /**
+             
+                /**
              * Find multiple models by their primary keys.
              *
              * @param \Illuminate\Contracts\Support\Arrayable|array $ids
@@ -13298,78 +13927,84 @@ namespace  {
              * @return \Illuminate\Database\Eloquent\Collection 
              * @static 
              */ 
-            public static function findMany($ids, $columns = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::findMany($ids, $columns);
+            public static function findMany($ids, $columns = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->findMany($ids, $columns);
             }
-         
-            /**
+             
+                /**
              * Find a model by its primary key or throw an exception.
              *
              * @param mixed $id
              * @param array $columns
-             * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection 
+             * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static|static[] 
              * @throws \Illuminate\Database\Eloquent\ModelNotFoundException
              * @static 
              */ 
-            public static function findOrFail($id, $columns = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::findOrFail($id, $columns);
+            public static function findOrFail($id, $columns = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->findOrFail($id, $columns);
             }
-         
-            /**
+             
+                /**
              * Find a model by its primary key or return fresh model instance.
              *
              * @param mixed $id
              * @param array $columns
-             * @return \Illuminate\Database\Eloquent\Model 
+             * @return \Illuminate\Database\Eloquent\Model|static 
              * @static 
              */ 
-            public static function findOrNew($id, $columns = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::findOrNew($id, $columns);
+            public static function findOrNew($id, $columns = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->findOrNew($id, $columns);
             }
-         
-            /**
+             
+                /**
              * Get the first record matching the attributes or instantiate it.
              *
              * @param array $attributes
              * @param array $values
-             * @return \Illuminate\Database\Eloquent\Model 
+             * @return \Illuminate\Database\Eloquent\Model|static 
              * @static 
              */ 
-            public static function firstOrNew($attributes, $values = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::firstOrNew($attributes, $values);
+            public static function firstOrNew($attributes, $values = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->firstOrNew($attributes, $values);
             }
-         
-            /**
+             
+                /**
              * Get the first record matching the attributes or create it.
              *
              * @param array $attributes
              * @param array $values
-             * @return \Illuminate\Database\Eloquent\Model 
+             * @return \Illuminate\Database\Eloquent\Model|static 
              * @static 
              */ 
-            public static function firstOrCreate($attributes, $values = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::firstOrCreate($attributes, $values);
+            public static function firstOrCreate($attributes, $values = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->firstOrCreate($attributes, $values);
             }
-         
-            /**
+             
+                /**
              * Create or update a record matching the attributes, and fill it with values.
              *
              * @param array $attributes
              * @param array $values
-             * @return \Illuminate\Database\Eloquent\Model 
+             * @return \Illuminate\Database\Eloquent\Model|static 
              * @static 
              */ 
-            public static function updateOrCreate($attributes, $values = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::updateOrCreate($attributes, $values);
+            public static function updateOrCreate($attributes, $values = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->updateOrCreate($attributes, $values);
             }
-         
-            /**
+             
+                /**
              * Execute the query and get the first result or throw an exception.
              *
              * @param array $columns
@@ -13377,12 +14012,13 @@ namespace  {
              * @throws \Illuminate\Database\Eloquent\ModelNotFoundException
              * @static 
              */ 
-            public static function firstOrFail($columns = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::firstOrFail($columns);
+            public static function firstOrFail($columns = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->firstOrFail($columns);
             }
-         
-            /**
+             
+                /**
              * Execute the query and get the first result or call a callback.
              *
              * @param \Closure|array $columns
@@ -13390,48 +14026,52 @@ namespace  {
              * @return \Illuminate\Database\Eloquent\Model|static|mixed 
              * @static 
              */ 
-            public static function firstOr($columns = array(), $callback = null)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::firstOr($columns, $callback);
+            public static function firstOr($columns = [], $callback = null)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->firstOr($columns, $callback);
             }
-         
-            /**
+             
+                /**
              * Get a single column's value from the first result of a query.
              *
-             * @param string $column
+             * @param string|\Illuminate\Database\Query\Expression $column
              * @return mixed 
              * @static 
              */ 
             public static function value($column)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::value($column);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->value($column);
             }
-         
-            /**
+             
+                /**
              * Execute the query as a "select" statement.
              *
-             * @param array $columns
+             * @param array|string $columns
              * @return \Illuminate\Database\Eloquent\Collection|static[] 
              * @static 
              */ 
-            public static function get($columns = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::get($columns);
+            public static function get($columns = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->get($columns);
             }
-         
-            /**
+             
+                /**
              * Get the hydrated models without eager loading.
              *
-             * @param array $columns
-             * @return \Illuminate\Database\Eloquent\Model[] 
+             * @param array|string $columns
+             * @return \Illuminate\Database\Eloquent\Model[]|static[] 
              * @static 
              */ 
-            public static function getModels($columns = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::getModels($columns);
+            public static function getModels($columns = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->getModels($columns);
             }
-         
-            /**
+             
+                /**
              * Eager load the relationships for the models.
              *
              * @param array $models
@@ -13439,53 +14079,41 @@ namespace  {
              * @static 
              */ 
             public static function eagerLoadRelations($models)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::eagerLoadRelations($models);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->eagerLoadRelations($models);
             }
-         
-            /**
-             * Get a generator for the given query.
+             
+                /**
+             * Get a lazy collection for the given query.
              *
-             * @return \Generator 
+             * @return \Illuminate\Support\LazyCollection 
              * @static 
              */ 
             public static function cursor()
-            {    
-                return \Illuminate\Database\Eloquent\Builder::cursor();
-            }
-         
-            /**
-             * Chunk the results of a query by comparing numeric IDs.
-             *
-             * @param int $count
-             * @param callable $callback
-             * @param string $column
-             * @param string|null $alias
-             * @return bool 
-             * @static 
-             */ 
-            public static function chunkById($count, $callback, $column = null, $alias = null)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::chunkById($count, $callback, $column, $alias);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->cursor();
             }
-         
-            /**
+             
+                /**
              * Get an array with the values of a given column.
              *
-             * @param string $column
+             * @param string|\Illuminate\Database\Query\Expression $column
              * @param string|null $key
              * @return \Illuminate\Support\Collection 
              * @static 
              */ 
             public static function pluck($column, $key = null)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::pluck($column, $key);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->pluck($column, $key);
             }
-         
-            /**
+             
+                /**
              * Paginate the given query.
              *
-             * @param int $perPage
+             * @param int|null $perPage
              * @param array $columns
              * @param string $pageName
              * @param int|null $page
@@ -13493,39 +14121,42 @@ namespace  {
              * @throws \InvalidArgumentException
              * @static 
              */ 
-            public static function paginate($perPage = null, $columns = array(), $pageName = 'page', $page = null)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::paginate($perPage, $columns, $pageName, $page);
+            public static function paginate($perPage = null, $columns = [], $pageName = 'page', $page = null)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->paginate($perPage, $columns, $pageName, $page);
             }
-         
-            /**
+             
+                /**
              * Paginate the given query into a simple paginator.
              *
-             * @param int $perPage
+             * @param int|null $perPage
              * @param array $columns
              * @param string $pageName
              * @param int|null $page
              * @return \Illuminate\Contracts\Pagination\Paginator 
              * @static 
              */ 
-            public static function simplePaginate($perPage = null, $columns = array(), $pageName = 'page', $page = null)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::simplePaginate($perPage, $columns, $pageName, $page);
+            public static function simplePaginate($perPage = null, $columns = [], $pageName = 'page', $page = null)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->simplePaginate($perPage, $columns, $pageName, $page);
             }
-         
-            /**
+             
+                /**
              * Save a new model and return the instance.
              *
              * @param array $attributes
              * @return \Illuminate\Database\Eloquent\Model|$this 
              * @static 
              */ 
-            public static function create($attributes = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::create($attributes);
+            public static function create($attributes = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->create($attributes);
             }
-         
-            /**
+             
+                /**
              * Save a new model and return the instance. Allow mass-assignment.
              *
              * @param array $attributes
@@ -13533,11 +14164,12 @@ namespace  {
              * @static 
              */ 
             public static function forceCreate($attributes)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::forceCreate($attributes);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->forceCreate($attributes);
             }
-         
-            /**
+             
+                /**
              * Register a replacement for the default delete function.
              *
              * @param \Closure $callback
@@ -13545,138 +14177,150 @@ namespace  {
              * @static 
              */ 
             public static function onDelete($callback)
-            {    
-                \Illuminate\Database\Eloquent\Builder::onDelete($callback);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                $instance->onDelete($callback);
             }
-         
-            /**
+             
+                /**
              * Call the given local model scopes.
              *
-             * @param array $scopes
-             * @return mixed 
+             * @param array|string $scopes
+             * @return static|mixed 
              * @static 
              */ 
             public static function scopes($scopes)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::scopes($scopes);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->scopes($scopes);
             }
-         
-            /**
+             
+                /**
              * Apply the scopes to the Eloquent builder instance and return it.
              *
-             * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @return static 
              * @static 
              */ 
             public static function applyScopes()
-            {    
-                return \Illuminate\Database\Eloquent\Builder::applyScopes();
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->applyScopes();
             }
-         
-            /**
+             
+                /**
              * Prevent the specified relations from being eager loaded.
              *
              * @param mixed $relations
-             * @return $this 
+             * @return \Illuminate\Database\Eloquent\Builder|static 
              * @static 
              */ 
             public static function without($relations)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::without($relations);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->without($relations);
             }
-         
-            /**
+             
+                /**
              * Create a new instance of the model being queried.
              *
              * @param array $attributes
-             * @return \Illuminate\Database\Eloquent\Model 
+             * @return \Illuminate\Database\Eloquent\Model|static 
              * @static 
              */ 
-            public static function newModelInstance($attributes = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::newModelInstance($attributes);
+            public static function newModelInstance($attributes = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->newModelInstance($attributes);
             }
-         
-            /**
+             
+                /**
              * Get the underlying query builder instance.
              *
              * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function getQuery()
-            {    
-                return \Illuminate\Database\Eloquent\Builder::getQuery();
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->getQuery();
             }
-         
-            /**
+             
+                /**
              * Set the underlying query builder instance.
              *
              * @param \Illuminate\Database\Query\Builder $query
-             * @return $this 
+             * @return \Illuminate\Database\Eloquent\Builder|static 
              * @static 
              */ 
             public static function setQuery($query)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::setQuery($query);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->setQuery($query);
             }
-         
-            /**
+             
+                /**
              * Get a base query builder instance.
              *
              * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function toBase()
-            {    
-                return \Illuminate\Database\Eloquent\Builder::toBase();
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->toBase();
             }
-         
-            /**
+             
+                /**
              * Get the relationships being eagerly loaded.
              *
              * @return array 
              * @static 
              */ 
             public static function getEagerLoads()
-            {    
-                return \Illuminate\Database\Eloquent\Builder::getEagerLoads();
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->getEagerLoads();
             }
-         
-            /**
+             
+                /**
              * Set the relationships being eagerly loaded.
              *
              * @param array $eagerLoad
-             * @return $this 
+             * @return \Illuminate\Database\Eloquent\Builder|static 
              * @static 
              */ 
             public static function setEagerLoads($eagerLoad)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::setEagerLoads($eagerLoad);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->setEagerLoads($eagerLoad);
             }
-         
-            /**
+             
+                /**
              * Get the model instance being queried.
              *
-             * @return \Illuminate\Database\Eloquent\Model 
+             * @return \Illuminate\Database\Eloquent\Model|static 
              * @static 
              */ 
             public static function getModel()
-            {    
-                return \Illuminate\Database\Eloquent\Builder::getModel();
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->getModel();
             }
-         
-            /**
+             
+                /**
              * Set a model instance for the model being queried.
              *
              * @param \Illuminate\Database\Eloquent\Model $model
-             * @return $this 
+             * @return \Illuminate\Database\Eloquent\Builder|static 
              * @static 
              */ 
             public static function setModel($model)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::setModel($model);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->setModel($model);
             }
-         
-            /**
+             
+                /**
              * Get the given macro by name.
              *
              * @param string $name
@@ -13684,11 +14328,49 @@ namespace  {
              * @static 
              */ 
             public static function getMacro($name)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::getMacro($name);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->getMacro($name);
             }
-         
-            /**
+             
+                /**
+             * Checks if a macro is registered.
+             *
+             * @param string $name
+             * @return bool 
+             * @static 
+             */ 
+            public static function hasMacro($name)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->hasMacro($name);
+            }
+             
+                /**
+             * Get the given global macro by name.
+             *
+             * @param string $name
+             * @return \Closure 
+             * @static 
+             */ 
+            public static function getGlobalMacro($name)
+            {
+                                return \Illuminate\Database\Eloquent\Builder::getGlobalMacro($name);
+            }
+             
+                /**
+             * Checks if a global macro is registered.
+             *
+             * @param string $name
+             * @return bool 
+             * @static 
+             */ 
+            public static function hasGlobalMacro($name)
+            {
+                                return \Illuminate\Database\Eloquent\Builder::hasGlobalMacro($name);
+            }
+             
+                /**
              * Chunk the results of the query.
              *
              * @param int $count
@@ -13697,11 +14379,12 @@ namespace  {
              * @static 
              */ 
             public static function chunk($count, $callback)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::chunk($count, $callback);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->chunk($count, $callback);
             }
-         
-            /**
+             
+                /**
              * Execute a callback over each item while chunking.
              *
              * @param callable $callback
@@ -13710,79 +14393,118 @@ namespace  {
              * @static 
              */ 
             public static function each($callback, $count = 1000)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::each($callback, $count);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->each($callback, $count);
             }
-         
-            /**
+             
+                /**
+             * Chunk the results of a query by comparing IDs.
+             *
+             * @param int $count
+             * @param callable $callback
+             * @param string|null $column
+             * @param string|null $alias
+             * @return bool 
+             * @static 
+             */ 
+            public static function chunkById($count, $callback, $column = null, $alias = null)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->chunkById($count, $callback, $column, $alias);
+            }
+             
+                /**
+             * Execute a callback over each item while chunking by id.
+             *
+             * @param callable $callback
+             * @param int $count
+             * @param string|null $column
+             * @param string|null $alias
+             * @return bool 
+             * @static 
+             */ 
+            public static function eachById($callback, $count = 1000, $column = null, $alias = null)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->eachById($callback, $count, $column, $alias);
+            }
+             
+                /**
              * Execute the query and get the first result.
              *
-             * @param array $columns
+             * @param array|string $columns
              * @return \Illuminate\Database\Eloquent\Model|object|static|null 
              * @static 
              */ 
-            public static function first($columns = array())
-            {    
-                return \Illuminate\Database\Eloquent\Builder::first($columns);
+            public static function first($columns = [])
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->first($columns);
             }
-         
-            /**
+             
+                /**
              * Apply the callback's query changes if the given "value" is true.
              *
              * @param mixed $value
              * @param callable $callback
-             * @param callable $default
-             * @return mixed 
+             * @param callable|null $default
+             * @return mixed|$this 
              * @static 
              */ 
             public static function when($value, $callback, $default = null)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::when($value, $callback, $default);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->when($value, $callback, $default);
             }
-         
-            /**
+             
+                /**
              * Pass the query to a given callback.
              *
-             * @param \Closure $callback
-             * @return \Illuminate\Database\Query\Builder 
+             * @param callable $callback
+             * @return \Illuminate\Database\Eloquent\Builder|static 
              * @static 
              */ 
             public static function tap($callback)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::tap($callback);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->tap($callback);
             }
-         
-            /**
+             
+                /**
              * Apply the callback's query changes if the given "value" is false.
              *
              * @param mixed $value
              * @param callable $callback
-             * @param callable $default
-             * @return mixed 
+             * @param callable|null $default
+             * @return mixed|$this 
              * @static 
              */ 
             public static function unless($value, $callback, $default = null)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::unless($value, $callback, $default);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->unless($value, $callback, $default);
             }
-         
-            /**
+             
+                /**
              * Add a relationship count / exists condition to the query.
              *
-             * @param string $relation
+             * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation
              * @param string $operator
              * @param int $count
              * @param string $boolean
              * @param \Closure|null $callback
              * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @throws \RuntimeException
              * @static 
              */ 
             public static function has($relation, $operator = '>=', $count = 1, $boolean = 'and', $callback = null)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::has($relation, $operator, $count, $boolean, $callback);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->has($relation, $operator, $count, $boolean, $callback);
             }
-         
-            /**
+             
+                /**
              * Add a relationship count / exists condition to the query with an "or".
              *
              * @param string $relation
@@ -13792,11 +14514,12 @@ namespace  {
              * @static 
              */ 
             public static function orHas($relation, $operator = '>=', $count = 1)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::orHas($relation, $operator, $count);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->orHas($relation, $operator, $count);
             }
-         
-            /**
+             
+                /**
              * Add a relationship count / exists condition to the query.
              *
              * @param string $relation
@@ -13806,11 +14529,12 @@ namespace  {
              * @static 
              */ 
             public static function doesntHave($relation, $boolean = 'and', $callback = null)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::doesntHave($relation, $boolean, $callback);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->doesntHave($relation, $boolean, $callback);
             }
-         
-            /**
+             
+                /**
              * Add a relationship count / exists condition to the query with an "or".
              *
              * @param string $relation
@@ -13818,11 +14542,12 @@ namespace  {
              * @static 
              */ 
             public static function orDoesntHave($relation)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::orDoesntHave($relation);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->orDoesntHave($relation);
             }
-         
-            /**
+             
+                /**
              * Add a relationship count / exists condition to the query with where clauses.
              *
              * @param string $relation
@@ -13833,11 +14558,12 @@ namespace  {
              * @static 
              */ 
             public static function whereHas($relation, $callback = null, $operator = '>=', $count = 1)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::whereHas($relation, $callback, $operator, $count);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->whereHas($relation, $callback, $operator, $count);
             }
-         
-            /**
+             
+                /**
              * Add a relationship count / exists condition to the query with where clauses and an "or".
              *
              * @param string $relation
@@ -13848,11 +14574,12 @@ namespace  {
              * @static 
              */ 
             public static function orWhereHas($relation, $callback = null, $operator = '>=', $count = 1)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::orWhereHas($relation, $callback, $operator, $count);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->orWhereHas($relation, $callback, $operator, $count);
             }
-         
-            /**
+             
+                /**
              * Add a relationship count / exists condition to the query with where clauses.
              *
              * @param string $relation
@@ -13861,11 +14588,12 @@ namespace  {
              * @static 
              */ 
             public static function whereDoesntHave($relation, $callback = null)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::whereDoesntHave($relation, $callback);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->whereDoesntHave($relation, $callback);
             }
-         
-            /**
+             
+                /**
              * Add a relationship count / exists condition to the query with where clauses and an "or".
              *
              * @param string $relation
@@ -13874,23 +14602,153 @@ namespace  {
              * @static 
              */ 
             public static function orWhereDoesntHave($relation, $callback = null)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::orWhereDoesntHave($relation, $callback);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->orWhereDoesntHave($relation, $callback);
             }
-         
-            /**
+             
+                /**
+             * Add a polymorphic relationship count / exists condition to the query.
+             *
+             * @param string $relation
+             * @param string|array $types
+             * @param string $operator
+             * @param int $count
+             * @param string $boolean
+             * @param \Closure|null $callback
+             * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @static 
+             */ 
+            public static function hasMorph($relation, $types, $operator = '>=', $count = 1, $boolean = 'and', $callback = null)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->hasMorph($relation, $types, $operator, $count, $boolean, $callback);
+            }
+             
+                /**
+             * Add a polymorphic relationship count / exists condition to the query with an "or".
+             *
+             * @param string $relation
+             * @param string|array $types
+             * @param string $operator
+             * @param int $count
+             * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @static 
+             */ 
+            public static function orHasMorph($relation, $types, $operator = '>=', $count = 1)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->orHasMorph($relation, $types, $operator, $count);
+            }
+             
+                /**
+             * Add a polymorphic relationship count / exists condition to the query.
+             *
+             * @param string $relation
+             * @param string|array $types
+             * @param string $boolean
+             * @param \Closure|null $callback
+             * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @static 
+             */ 
+            public static function doesntHaveMorph($relation, $types, $boolean = 'and', $callback = null)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->doesntHaveMorph($relation, $types, $boolean, $callback);
+            }
+             
+                /**
+             * Add a polymorphic relationship count / exists condition to the query with an "or".
+             *
+             * @param string $relation
+             * @param string|array $types
+             * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @static 
+             */ 
+            public static function orDoesntHaveMorph($relation, $types)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->orDoesntHaveMorph($relation, $types);
+            }
+             
+                /**
+             * Add a polymorphic relationship count / exists condition to the query with where clauses.
+             *
+             * @param string $relation
+             * @param string|array $types
+             * @param \Closure|null $callback
+             * @param string $operator
+             * @param int $count
+             * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @static 
+             */ 
+            public static function whereHasMorph($relation, $types, $callback = null, $operator = '>=', $count = 1)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->whereHasMorph($relation, $types, $callback, $operator, $count);
+            }
+             
+                /**
+             * Add a polymorphic relationship count / exists condition to the query with where clauses and an "or".
+             *
+             * @param string $relation
+             * @param string|array $types
+             * @param \Closure $callback
+             * @param string $operator
+             * @param int $count
+             * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @static 
+             */ 
+            public static function orWhereHasMorph($relation, $types, $callback = null, $operator = '>=', $count = 1)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->orWhereHasMorph($relation, $types, $callback, $operator, $count);
+            }
+             
+                /**
+             * Add a polymorphic relationship count / exists condition to the query with where clauses.
+             *
+             * @param string $relation
+             * @param string|array $types
+             * @param \Closure|null $callback
+             * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @static 
+             */ 
+            public static function whereDoesntHaveMorph($relation, $types, $callback = null)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->whereDoesntHaveMorph($relation, $types, $callback);
+            }
+             
+                /**
+             * Add a polymorphic relationship count / exists condition to the query with where clauses and an "or".
+             *
+             * @param string $relation
+             * @param string|array $types
+             * @param \Closure $callback
+             * @return \Illuminate\Database\Eloquent\Builder|static 
+             * @static 
+             */ 
+            public static function orWhereDoesntHaveMorph($relation, $types, $callback = null)
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->orWhereDoesntHaveMorph($relation, $types, $callback);
+            }
+             
+                /**
              * Add subselect queries to count the relations.
              *
              * @param mixed $relations
-             * @return $this 
+             * @return \Illuminate\Database\Eloquent\Builder|static 
              * @static 
              */ 
             public static function withCount($relations)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::withCount($relations);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->withCount($relations);
             }
-         
-            /**
+             
+                /**
              * Merge the where constraints from another query to the current query.
              *
              * @param \Illuminate\Database\Eloquent\Builder $from
@@ -13898,37 +14756,40 @@ namespace  {
              * @static 
              */ 
             public static function mergeConstraintsFrom($from)
-            {    
-                return \Illuminate\Database\Eloquent\Builder::mergeConstraintsFrom($from);
+            {
+                                /** @var \Illuminate\Database\Eloquent\Builder $instance */
+                                return $instance->mergeConstraintsFrom($from);
             }
-         
-            /**
+             
+                /**
              * Set the columns to be selected.
              *
              * @param array|mixed $columns
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
-            public static function select($columns = array())
-            {    
-                return \Illuminate\Database\Query\Builder::select($columns);
+            public static function select($columns = [])
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->select($columns);
             }
-         
-            /**
+             
+                /**
              * Add a subselect expression to the query.
              *
-             * @param \Closure|\Illuminate\Database\Query\Builder|string $query
+             * @param \Closure|$this|string $query
              * @param string $as
              * @return \Illuminate\Database\Query\Builder|static 
              * @throws \InvalidArgumentException
              * @static 
              */ 
             public static function selectSub($query, $as)
-            {    
-                return \Illuminate\Database\Query\Builder::selectSub($query, $as);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->selectSub($query, $as);
             }
-         
-            /**
+             
+                /**
              * Add a new "raw" select expression to the query.
              *
              * @param string $expression
@@ -13936,12 +14797,13 @@ namespace  {
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
-            public static function selectRaw($expression, $bindings = array())
-            {    
-                return \Illuminate\Database\Query\Builder::selectRaw($expression, $bindings);
+            public static function selectRaw($expression, $bindings = [])
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->selectRaw($expression, $bindings);
             }
-         
-            /**
+             
+                /**
              * Makes "from" fetch from a subquery.
              *
              * @param \Closure|\Illuminate\Database\Query\Builder|string $query
@@ -13951,11 +14813,12 @@ namespace  {
              * @static 
              */ 
             public static function fromSub($query, $as)
-            {    
-                return \Illuminate\Database\Query\Builder::fromSub($query, $as);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->fromSub($query, $as);
             }
-         
-            /**
+             
+                /**
              * Add a raw from clause to the query.
              *
              * @param string $expression
@@ -13963,68 +14826,74 @@ namespace  {
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
-            public static function fromRaw($expression, $bindings = array())
-            {    
-                return \Illuminate\Database\Query\Builder::fromRaw($expression, $bindings);
+            public static function fromRaw($expression, $bindings = [])
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->fromRaw($expression, $bindings);
             }
-         
-            /**
+             
+                /**
              * Add a new select column to the query.
              *
              * @param array|mixed $column
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function addSelect($column)
-            {    
-                return \Illuminate\Database\Query\Builder::addSelect($column);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->addSelect($column);
             }
-         
-            /**
+             
+                /**
              * Force the query to only return distinct results.
              *
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function distinct()
-            {    
-                return \Illuminate\Database\Query\Builder::distinct();
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->distinct();
             }
-         
-            /**
+             
+                /**
              * Set the table which the query is targeting.
              *
-             * @param string $table
-             * @return $this 
+             * @param \Closure|\Illuminate\Database\Query\Builder|string $table
+             * @param string|null $as
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
-            public static function from($table)
-            {    
-                return \Illuminate\Database\Query\Builder::from($table);
+            public static function from($table, $as = null)
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->from($table, $as);
             }
-         
-            /**
+             
+                /**
              * Add a join clause to the query.
              *
              * @param string $table
-             * @param string $first
+             * @param \Closure|string $first
              * @param string|null $operator
              * @param string|null $second
              * @param string $type
              * @param bool $where
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function join($table, $first, $operator = null, $second = null, $type = 'inner', $where = false)
-            {    
-                return \Illuminate\Database\Query\Builder::join($table, $first, $operator, $second, $type, $where);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->join($table, $first, $operator, $second, $type, $where);
             }
-         
-            /**
+             
+                /**
              * Add a "join where" clause to the query.
              *
              * @param string $table
-             * @param string $first
+             * @param \Closure|string $first
              * @param string $operator
              * @param string $second
              * @param string $type
@@ -14032,16 +14901,17 @@ namespace  {
              * @static 
              */ 
             public static function joinWhere($table, $first, $operator, $second, $type = 'inner')
-            {    
-                return \Illuminate\Database\Query\Builder::joinWhere($table, $first, $operator, $second, $type);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->joinWhere($table, $first, $operator, $second, $type);
             }
-         
-            /**
+             
+                /**
              * Add a subquery join clause to the query.
              *
              * @param \Closure|\Illuminate\Database\Query\Builder|string $query
              * @param string $as
-             * @param string $first
+             * @param \Closure|string $first
              * @param string|null $operator
              * @param string|null $second
              * @param string $type
@@ -14051,118 +14921,126 @@ namespace  {
              * @static 
              */ 
             public static function joinSub($query, $as, $first, $operator = null, $second = null, $type = 'inner', $where = false)
-            {    
-                return \Illuminate\Database\Query\Builder::joinSub($query, $as, $first, $operator, $second, $type, $where);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->joinSub($query, $as, $first, $operator, $second, $type, $where);
             }
-         
-            /**
+             
+                /**
              * Add a left join to the query.
              *
              * @param string $table
-             * @param string $first
+             * @param \Closure|string $first
              * @param string|null $operator
              * @param string|null $second
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function leftJoin($table, $first, $operator = null, $second = null)
-            {    
-                return \Illuminate\Database\Query\Builder::leftJoin($table, $first, $operator, $second);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->leftJoin($table, $first, $operator, $second);
             }
-         
-            /**
+             
+                /**
              * Add a "join where" clause to the query.
              *
              * @param string $table
-             * @param string $first
+             * @param \Closure|string $first
              * @param string $operator
              * @param string $second
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function leftJoinWhere($table, $first, $operator, $second)
-            {    
-                return \Illuminate\Database\Query\Builder::leftJoinWhere($table, $first, $operator, $second);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->leftJoinWhere($table, $first, $operator, $second);
             }
-         
-            /**
+             
+                /**
              * Add a subquery left join to the query.
              *
              * @param \Closure|\Illuminate\Database\Query\Builder|string $query
              * @param string $as
-             * @param string $first
+             * @param \Closure|string $first
              * @param string|null $operator
              * @param string|null $second
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function leftJoinSub($query, $as, $first, $operator = null, $second = null)
-            {    
-                return \Illuminate\Database\Query\Builder::leftJoinSub($query, $as, $first, $operator, $second);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->leftJoinSub($query, $as, $first, $operator, $second);
             }
-         
-            /**
+             
+                /**
              * Add a right join to the query.
              *
              * @param string $table
-             * @param string $first
+             * @param \Closure|string $first
              * @param string|null $operator
              * @param string|null $second
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function rightJoin($table, $first, $operator = null, $second = null)
-            {    
-                return \Illuminate\Database\Query\Builder::rightJoin($table, $first, $operator, $second);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->rightJoin($table, $first, $operator, $second);
             }
-         
-            /**
+             
+                /**
              * Add a "right join where" clause to the query.
              *
              * @param string $table
-             * @param string $first
+             * @param \Closure|string $first
              * @param string $operator
              * @param string $second
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function rightJoinWhere($table, $first, $operator, $second)
-            {    
-                return \Illuminate\Database\Query\Builder::rightJoinWhere($table, $first, $operator, $second);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->rightJoinWhere($table, $first, $operator, $second);
             }
-         
-            /**
+             
+                /**
              * Add a subquery right join to the query.
              *
              * @param \Closure|\Illuminate\Database\Query\Builder|string $query
              * @param string $as
-             * @param string $first
+             * @param \Closure|string $first
              * @param string|null $operator
              * @param string|null $second
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function rightJoinSub($query, $as, $first, $operator = null, $second = null)
-            {    
-                return \Illuminate\Database\Query\Builder::rightJoinSub($query, $as, $first, $operator, $second);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->rightJoinSub($query, $as, $first, $operator, $second);
             }
-         
-            /**
+             
+                /**
              * Add a "cross join" clause to the query.
              *
              * @param string $table
-             * @param string|null $first
+             * @param \Closure|string|null $first
              * @param string|null $operator
              * @param string|null $second
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function crossJoin($table, $first = null, $operator = null, $second = null)
-            {    
-                return \Illuminate\Database\Query\Builder::crossJoin($table, $first, $operator, $second);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->crossJoin($table, $first, $operator, $second);
             }
-         
-            /**
+             
+                /**
              * Merge an array of where clauses and bindings.
              *
              * @param array $wheres
@@ -14171,11 +15049,12 @@ namespace  {
              * @static 
              */ 
             public static function mergeWheres($wheres, $bindings)
-            {    
-                \Illuminate\Database\Query\Builder::mergeWheres($wheres, $bindings);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                $instance->mergeWheres($wheres, $bindings);
             }
-         
-            /**
+             
+                /**
              * Prepare the value and operator for a where clause.
              *
              * @param string $value
@@ -14186,11 +15065,12 @@ namespace  {
              * @static 
              */ 
             public static function prepareValueAndOperator($value, $operator, $useDefault = false)
-            {    
-                return \Illuminate\Database\Query\Builder::prepareValueAndOperator($value, $operator, $useDefault);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->prepareValueAndOperator($value, $operator, $useDefault);
             }
-         
-            /**
+             
+                /**
              * Add a "where" clause comparing two columns to the query.
              *
              * @param string|array $first
@@ -14201,11 +15081,12 @@ namespace  {
              * @static 
              */ 
             public static function whereColumn($first, $operator = null, $second = null, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereColumn($first, $operator, $second, $boolean);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereColumn($first, $operator, $second, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add an "or where" clause comparing two columns to the query.
              *
              * @param string|array $first
@@ -14215,25 +15096,27 @@ namespace  {
              * @static 
              */ 
             public static function orWhereColumn($first, $operator = null, $second = null)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereColumn($first, $operator, $second);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereColumn($first, $operator, $second);
             }
-         
-            /**
+             
+                /**
              * Add a raw where clause to the query.
              *
              * @param string $sql
              * @param mixed $bindings
              * @param string $boolean
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
-            public static function whereRaw($sql, $bindings = array(), $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereRaw($sql, $bindings, $boolean);
+            public static function whereRaw($sql, $bindings = [], $boolean = 'and')
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereRaw($sql, $bindings, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add a raw or where clause to the query.
              *
              * @param string $sql
@@ -14241,27 +15124,29 @@ namespace  {
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
-            public static function orWhereRaw($sql, $bindings = array())
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereRaw($sql, $bindings);
+            public static function orWhereRaw($sql, $bindings = [])
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereRaw($sql, $bindings);
             }
-         
-            /**
+             
+                /**
              * Add a "where in" clause to the query.
              *
              * @param string $column
              * @param mixed $values
              * @param string $boolean
              * @param bool $not
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function whereIn($column, $values, $boolean = 'and', $not = false)
-            {    
-                return \Illuminate\Database\Query\Builder::whereIn($column, $values, $boolean, $not);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereIn($column, $values, $boolean, $not);
             }
-         
-            /**
+             
+                /**
              * Add an "or where in" clause to the query.
              *
              * @param string $column
@@ -14270,11 +15155,12 @@ namespace  {
              * @static 
              */ 
             public static function orWhereIn($column, $values)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereIn($column, $values);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereIn($column, $values);
             }
-         
-            /**
+             
+                /**
              * Add a "where not in" clause to the query.
              *
              * @param string $column
@@ -14284,11 +15170,12 @@ namespace  {
              * @static 
              */ 
             public static function whereNotIn($column, $values, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereNotIn($column, $values, $boolean);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereNotIn($column, $values, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add an "or where not in" clause to the query.
              *
              * @param string $column
@@ -14297,25 +15184,58 @@ namespace  {
              * @static 
              */ 
             public static function orWhereNotIn($column, $values)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereNotIn($column, $values);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereNotIn($column, $values);
             }
-         
-            /**
-             * Add a "where null" clause to the query.
+             
+                /**
+             * Add a "where in raw" clause for integer values to the query.
              *
              * @param string $column
+             * @param \Illuminate\Contracts\Support\Arrayable|array $values
              * @param string $boolean
              * @param bool $not
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
-            public static function whereNull($column, $boolean = 'and', $not = false)
-            {    
-                return \Illuminate\Database\Query\Builder::whereNull($column, $boolean, $not);
+            public static function whereIntegerInRaw($column, $values, $boolean = 'and', $not = false)
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereIntegerInRaw($column, $values, $boolean, $not);
             }
-         
-            /**
+             
+                /**
+             * Add a "where not in raw" clause for integer values to the query.
+             *
+             * @param string $column
+             * @param \Illuminate\Contracts\Support\Arrayable|array $values
+             * @param string $boolean
+             * @return \Illuminate\Database\Query\Builder 
+             * @static 
+             */ 
+            public static function whereIntegerNotInRaw($column, $values, $boolean = 'and')
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereIntegerNotInRaw($column, $values, $boolean);
+            }
+             
+                /**
+             * Add a "where null" clause to the query.
+             *
+             * @param string|array $columns
+             * @param string $boolean
+             * @param bool $not
+             * @return \Illuminate\Database\Query\Builder 
+             * @static 
+             */ 
+            public static function whereNull($columns, $boolean = 'and', $not = false)
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereNull($columns, $boolean, $not);
+            }
+             
+                /**
              * Add an "or where null" clause to the query.
              *
              * @param string $column
@@ -14323,39 +15243,42 @@ namespace  {
              * @static 
              */ 
             public static function orWhereNull($column)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereNull($column);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereNull($column);
             }
-         
-            /**
+             
+                /**
              * Add a "where not null" clause to the query.
              *
-             * @param string $column
+             * @param string|array $columns
              * @param string $boolean
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
-            public static function whereNotNull($column, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereNotNull($column, $boolean);
+            public static function whereNotNull($columns, $boolean = 'and')
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereNotNull($columns, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add a where between statement to the query.
              *
              * @param string $column
              * @param array $values
              * @param string $boolean
              * @param bool $not
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function whereBetween($column, $values, $boolean = 'and', $not = false)
-            {    
-                return \Illuminate\Database\Query\Builder::whereBetween($column, $values, $boolean, $not);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereBetween($column, $values, $boolean, $not);
             }
-         
-            /**
+             
+                /**
              * Add an or where between statement to the query.
              *
              * @param string $column
@@ -14364,11 +15287,12 @@ namespace  {
              * @static 
              */ 
             public static function orWhereBetween($column, $values)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereBetween($column, $values);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereBetween($column, $values);
             }
-         
-            /**
+             
+                /**
              * Add a where not between statement to the query.
              *
              * @param string $column
@@ -14378,11 +15302,12 @@ namespace  {
              * @static 
              */ 
             public static function whereNotBetween($column, $values, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereNotBetween($column, $values, $boolean);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereNotBetween($column, $values, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add an or where not between statement to the query.
              *
              * @param string $column
@@ -14391,11 +15316,12 @@ namespace  {
              * @static 
              */ 
             public static function orWhereNotBetween($column, $values)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereNotBetween($column, $values);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereNotBetween($column, $values);
             }
-         
-            /**
+             
+                /**
              * Add an "or where not null" clause to the query.
              *
              * @param string $column
@@ -14403,156 +15329,167 @@ namespace  {
              * @static 
              */ 
             public static function orWhereNotNull($column)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereNotNull($column);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereNotNull($column);
             }
-         
-            /**
+             
+                /**
              * Add a "where date" statement to the query.
              *
              * @param string $column
              * @param string $operator
-             * @param mixed $value
+             * @param \DateTimeInterface|string|null $value
              * @param string $boolean
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function whereDate($column, $operator, $value = null, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereDate($column, $operator, $value, $boolean);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereDate($column, $operator, $value, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add an "or where date" statement to the query.
              *
              * @param string $column
              * @param string $operator
-             * @param mixed $value
+             * @param \DateTimeInterface|string|null $value
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function orWhereDate($column, $operator, $value = null)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereDate($column, $operator, $value);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereDate($column, $operator, $value);
             }
-         
-            /**
+             
+                /**
              * Add a "where time" statement to the query.
              *
              * @param string $column
              * @param string $operator
-             * @param mixed $value
+             * @param \DateTimeInterface|string|null $value
              * @param string $boolean
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function whereTime($column, $operator, $value = null, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereTime($column, $operator, $value, $boolean);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereTime($column, $operator, $value, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add an "or where time" statement to the query.
              *
              * @param string $column
              * @param string $operator
-             * @param mixed $value
+             * @param \DateTimeInterface|string|null $value
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function orWhereTime($column, $operator, $value = null)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereTime($column, $operator, $value);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereTime($column, $operator, $value);
             }
-         
-            /**
+             
+                /**
              * Add a "where day" statement to the query.
              *
              * @param string $column
              * @param string $operator
-             * @param mixed $value
+             * @param \DateTimeInterface|string|null $value
              * @param string $boolean
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function whereDay($column, $operator, $value = null, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereDay($column, $operator, $value, $boolean);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereDay($column, $operator, $value, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add an "or where day" statement to the query.
              *
              * @param string $column
              * @param string $operator
-             * @param mixed $value
+             * @param \DateTimeInterface|string|null $value
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function orWhereDay($column, $operator, $value = null)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereDay($column, $operator, $value);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereDay($column, $operator, $value);
             }
-         
-            /**
+             
+                /**
              * Add a "where month" statement to the query.
              *
              * @param string $column
              * @param string $operator
-             * @param mixed $value
+             * @param \DateTimeInterface|string|null $value
              * @param string $boolean
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function whereMonth($column, $operator, $value = null, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereMonth($column, $operator, $value, $boolean);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereMonth($column, $operator, $value, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add an "or where month" statement to the query.
              *
              * @param string $column
              * @param string $operator
-             * @param mixed $value
+             * @param \DateTimeInterface|string|null $value
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function orWhereMonth($column, $operator, $value = null)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereMonth($column, $operator, $value);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereMonth($column, $operator, $value);
             }
-         
-            /**
+             
+                /**
              * Add a "where year" statement to the query.
              *
              * @param string $column
              * @param string $operator
-             * @param mixed $value
+             * @param \DateTimeInterface|string|int|null $value
              * @param string $boolean
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function whereYear($column, $operator, $value = null, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereYear($column, $operator, $value, $boolean);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereYear($column, $operator, $value, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add an "or where year" statement to the query.
              *
              * @param string $column
              * @param string $operator
-             * @param mixed $value
+             * @param \DateTimeInterface|string|int|null $value
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
             public static function orWhereYear($column, $operator, $value = null)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereYear($column, $operator, $value);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereYear($column, $operator, $value);
             }
-         
-            /**
+             
+                /**
              * Add a nested where statement to the query.
              *
              * @param \Closure $callback
@@ -14561,49 +15498,53 @@ namespace  {
              * @static 
              */ 
             public static function whereNested($callback, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereNested($callback, $boolean);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereNested($callback, $boolean);
             }
-         
-            /**
+             
+                /**
              * Create a new query instance for nested where condition.
              *
              * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function forNestedWhere()
-            {    
-                return \Illuminate\Database\Query\Builder::forNestedWhere();
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->forNestedWhere();
             }
-         
-            /**
+             
+                /**
              * Add another query builder as a nested where to the query builder.
              *
              * @param \Illuminate\Database\Query\Builder|static $query
              * @param string $boolean
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function addNestedWhereQuery($query, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::addNestedWhereQuery($query, $boolean);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->addNestedWhereQuery($query, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add an exists clause to the query.
              *
              * @param \Closure $callback
              * @param string $boolean
              * @param bool $not
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function whereExists($callback, $boolean = 'and', $not = false)
-            {    
-                return \Illuminate\Database\Query\Builder::whereExists($callback, $boolean, $not);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereExists($callback, $boolean, $not);
             }
-         
-            /**
+             
+                /**
              * Add an or exists clause to the query.
              *
              * @param \Closure $callback
@@ -14612,11 +15553,12 @@ namespace  {
              * @static 
              */ 
             public static function orWhereExists($callback, $not = false)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereExists($callback, $not);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereExists($callback, $not);
             }
-         
-            /**
+             
+                /**
              * Add a where not exists clause to the query.
              *
              * @param \Closure $callback
@@ -14625,11 +15567,12 @@ namespace  {
              * @static 
              */ 
             public static function whereNotExists($callback, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereNotExists($callback, $boolean);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereNotExists($callback, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add a where not exists clause to the query.
              *
              * @param \Closure $callback
@@ -14637,149 +15580,206 @@ namespace  {
              * @static 
              */ 
             public static function orWhereNotExists($callback)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereNotExists($callback);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereNotExists($callback);
             }
-         
-            /**
+             
+                /**
              * Add an exists clause to the query.
              *
              * @param \Illuminate\Database\Query\Builder $query
              * @param string $boolean
              * @param bool $not
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function addWhereExistsQuery($query, $boolean = 'and', $not = false)
-            {    
-                return \Illuminate\Database\Query\Builder::addWhereExistsQuery($query, $boolean, $not);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->addWhereExistsQuery($query, $boolean, $not);
             }
-         
-            /**
+             
+                /**
              * Adds a where condition using row values.
              *
              * @param array $columns
              * @param string $operator
              * @param array $values
              * @param string $boolean
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
+             * @throws \InvalidArgumentException
              * @static 
              */ 
             public static function whereRowValues($columns, $operator, $values, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereRowValues($columns, $operator, $values, $boolean);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereRowValues($columns, $operator, $values, $boolean);
             }
-         
-            /**
+             
+                /**
              * Adds a or where condition using row values.
              *
              * @param array $columns
              * @param string $operator
              * @param array $values
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function orWhereRowValues($columns, $operator, $values)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereRowValues($columns, $operator, $values);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereRowValues($columns, $operator, $values);
             }
-         
-            /**
+             
+                /**
              * Add a "where JSON contains" clause to the query.
              *
              * @param string $column
              * @param mixed $value
              * @param string $boolean
-             * @param bool $not
-             * @return $this 
+             * @param bool $not
+             * @return \Illuminate\Database\Query\Builder 
+             * @static 
+             */ 
+            public static function whereJsonContains($column, $value, $boolean = 'and', $not = false)
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereJsonContains($column, $value, $boolean, $not);
+            }
+             
+                /**
+             * Add a "or where JSON contains" clause to the query.
+             *
+             * @param string $column
+             * @param mixed $value
+             * @return \Illuminate\Database\Query\Builder 
+             * @static 
+             */ 
+            public static function orWhereJsonContains($column, $value)
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereJsonContains($column, $value);
+            }
+             
+                /**
+             * Add a "where JSON not contains" clause to the query.
+             *
+             * @param string $column
+             * @param mixed $value
+             * @param string $boolean
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
-            public static function whereJsonContains($column, $value, $boolean = 'and', $not = false)
-            {    
-                return \Illuminate\Database\Query\Builder::whereJsonContains($column, $value, $boolean, $not);
+            public static function whereJsonDoesntContain($column, $value, $boolean = 'and')
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereJsonDoesntContain($column, $value, $boolean);
             }
-         
-            /**
-             * Add a "or where JSON contains" clause to the query.
+             
+                /**
+             * Add a "or where JSON not contains" clause to the query.
              *
              * @param string $column
              * @param mixed $value
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
-            public static function orWhereJsonContains($column, $value)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereJsonContains($column, $value);
+            public static function orWhereJsonDoesntContain($column, $value)
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereJsonDoesntContain($column, $value);
             }
-         
-            /**
-             * Add a "where JSON not contains" clause to the query.
+             
+                /**
+             * Add a "where JSON length" clause to the query.
              *
              * @param string $column
+             * @param mixed $operator
              * @param mixed $value
              * @param string $boolean
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
-            public static function whereJsonDoesntContain($column, $value, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::whereJsonDoesntContain($column, $value, $boolean);
+            public static function whereJsonLength($column, $operator, $value = null, $boolean = 'and')
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->whereJsonLength($column, $operator, $value, $boolean);
             }
-         
-            /**
-             * Add a "or where JSON not contains" clause to the query.
+             
+                /**
+             * Add a "or where JSON length" clause to the query.
              *
              * @param string $column
+             * @param mixed $operator
              * @param mixed $value
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
-            public static function orWhereJsonDoesntContain($column, $value)
-            {    
-                return \Illuminate\Database\Query\Builder::orWhereJsonDoesntContain($column, $value);
+            public static function orWhereJsonLength($column, $operator, $value = null)
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orWhereJsonLength($column, $operator, $value);
             }
-         
-            /**
+             
+                /**
              * Handles dynamic "where" clauses to the query.
              *
              * @param string $method
-             * @param string $parameters
-             * @return $this 
+             * @param array $parameters
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function dynamicWhere($method, $parameters)
-            {    
-                return \Illuminate\Database\Query\Builder::dynamicWhere($method, $parameters);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->dynamicWhere($method, $parameters);
             }
-         
-            /**
+             
+                /**
              * Add a "group by" clause to the query.
              *
-             * @param array $groups
-             * @return $this 
+             * @param array|string $groups
+             * @return \Illuminate\Database\Query\Builder 
+             * @static 
+             */ 
+            public static function groupBy(...$groups)
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->groupBy(...$groups);
+            }
+             
+                /**
+             * Add a raw groupBy clause to the query.
+             *
+             * @param string $sql
+             * @param array $bindings
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
-            public static function groupBy($groups = null)
-            {    
-                return \Illuminate\Database\Query\Builder::groupBy($groups);
+            public static function groupByRaw($sql, $bindings = [])
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->groupByRaw($sql, $bindings);
             }
-         
-            /**
+             
+                /**
              * Add a "having" clause to the query.
              *
              * @param string $column
              * @param string|null $operator
              * @param string|null $value
              * @param string $boolean
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function having($column, $operator = null, $value = null, $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::having($column, $operator, $value, $boolean);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->having($column, $operator, $value, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add a "or having" clause to the query.
              *
              * @param string $column
@@ -14789,25 +15789,43 @@ namespace  {
              * @static 
              */ 
             public static function orHaving($column, $operator = null, $value = null)
-            {    
-                return \Illuminate\Database\Query\Builder::orHaving($column, $operator, $value);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orHaving($column, $operator, $value);
             }
-         
-            /**
+             
+                /**
+             * Add a "having between " clause to the query.
+             *
+             * @param string $column
+             * @param array $values
+             * @param string $boolean
+             * @param bool $not
+             * @return \Illuminate\Database\Query\Builder|static 
+             * @static 
+             */ 
+            public static function havingBetween($column, $values, $boolean = 'and', $not = false)
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->havingBetween($column, $values, $boolean, $not);
+            }
+             
+                /**
              * Add a raw having clause to the query.
              *
              * @param string $sql
              * @param array $bindings
              * @param string $boolean
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
-            public static function havingRaw($sql, $bindings = array(), $boolean = 'and')
-            {    
-                return \Illuminate\Database\Query\Builder::havingRaw($sql, $bindings, $boolean);
+            public static function havingRaw($sql, $bindings = [], $boolean = 'and')
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->havingRaw($sql, $bindings, $boolean);
             }
-         
-            /**
+             
+                /**
              * Add a raw or having clause to the query.
              *
              * @param string $sql
@@ -14815,86 +15833,68 @@ namespace  {
              * @return \Illuminate\Database\Query\Builder|static 
              * @static 
              */ 
-            public static function orHavingRaw($sql, $bindings = array())
-            {    
-                return \Illuminate\Database\Query\Builder::orHavingRaw($sql, $bindings);
+            public static function orHavingRaw($sql, $bindings = [])
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orHavingRaw($sql, $bindings);
             }
-         
-            /**
+             
+                /**
              * Add an "order by" clause to the query.
              *
-             * @param string $column
+             * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Query\Expression|string $column
              * @param string $direction
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
+             * @throws \InvalidArgumentException
              * @static 
              */ 
             public static function orderBy($column, $direction = 'asc')
-            {    
-                return \Illuminate\Database\Query\Builder::orderBy($column, $direction);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orderBy($column, $direction);
             }
-         
-            /**
+             
+                /**
              * Add a descending "order by" clause to the query.
              *
              * @param string $column
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function orderByDesc($column)
-            {    
-                return \Illuminate\Database\Query\Builder::orderByDesc($column);
-            }
-         
-            /**
-             * Add an "order by" clause for a timestamp to the query.
-             *
-             * @param string $column
-             * @return \Illuminate\Database\Query\Builder|static 
-             * @static 
-             */ 
-            public static function latest($column = 'created_at')
-            {    
-                return \Illuminate\Database\Query\Builder::latest($column);
-            }
-         
-            /**
-             * Add an "order by" clause for a timestamp to the query.
-             *
-             * @param string $column
-             * @return \Illuminate\Database\Query\Builder|static 
-             * @static 
-             */ 
-            public static function oldest($column = 'created_at')
-            {    
-                return \Illuminate\Database\Query\Builder::oldest($column);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orderByDesc($column);
             }
-         
-            /**
+             
+                /**
              * Put the query's results in random order.
              *
              * @param string $seed
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function inRandomOrder($seed = '')
-            {    
-                return \Illuminate\Database\Query\Builder::inRandomOrder($seed);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->inRandomOrder($seed);
             }
-         
-            /**
+             
+                /**
              * Add a raw "order by" clause to the query.
              *
              * @param string $sql
              * @param array $bindings
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
-            public static function orderByRaw($sql, $bindings = array())
-            {    
-                return \Illuminate\Database\Query\Builder::orderByRaw($sql, $bindings);
+            public static function orderByRaw($sql, $bindings = [])
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->orderByRaw($sql, $bindings);
             }
-         
-            /**
+             
+                /**
              * Alias to set the "offset" value of the query.
              *
              * @param int $value
@@ -14902,23 +15902,25 @@ namespace  {
              * @static 
              */ 
             public static function skip($value)
-            {    
-                return \Illuminate\Database\Query\Builder::skip($value);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->skip($value);
             }
-         
-            /**
+             
+                /**
              * Set the "offset" value of the query.
              *
              * @param int $value
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function offset($value)
-            {    
-                return \Illuminate\Database\Query\Builder::offset($value);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->offset($value);
             }
-         
-            /**
+             
+                /**
              * Alias to set the "limit" value of the query.
              *
              * @param int $value
@@ -14926,23 +15928,25 @@ namespace  {
              * @static 
              */ 
             public static function take($value)
-            {    
-                return \Illuminate\Database\Query\Builder::take($value);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->take($value);
             }
-         
-            /**
+             
+                /**
              * Set the "limit" value of the query.
              *
              * @param int $value
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function limit($value)
-            {    
-                return \Illuminate\Database\Query\Builder::limit($value);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->limit($value);
             }
-         
-            /**
+             
+                /**
              * Set the limit and offset for a given page.
              *
              * @param int $page
@@ -14951,11 +15955,27 @@ namespace  {
              * @static 
              */ 
             public static function forPage($page, $perPage = 15)
-            {    
-                return \Illuminate\Database\Query\Builder::forPage($page, $perPage);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->forPage($page, $perPage);
             }
-         
-            /**
+             
+                /**
+             * Constrain the query to the previous "page" of results before a given ID.
+             *
+             * @param int $perPage
+             * @param int|null $lastId
+             * @param string $column
+             * @return \Illuminate\Database\Query\Builder|static 
+             * @static 
+             */ 
+            public static function forPageBeforeId($perPage = 15, $lastId = 0, $column = 'id')
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->forPageBeforeId($perPage, $lastId, $column);
+            }
+             
+                /**
              * Constrain the query to the next "page" of results after a given ID.
              *
              * @param int $perPage
@@ -14965,11 +15985,12 @@ namespace  {
              * @static 
              */ 
             public static function forPageAfterId($perPage = 15, $lastId = 0, $column = 'id')
-            {    
-                return \Illuminate\Database\Query\Builder::forPageAfterId($perPage, $lastId, $column);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->forPageAfterId($perPage, $lastId, $column);
             }
-         
-            /**
+             
+                /**
              * Add a union statement to the query.
              *
              * @param \Illuminate\Database\Query\Builder|\Closure $query
@@ -14978,11 +15999,12 @@ namespace  {
              * @static 
              */ 
             public static function union($query, $all = false)
-            {    
-                return \Illuminate\Database\Query\Builder::union($query, $all);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->union($query, $all);
             }
-         
-            /**
+             
+                /**
              * Add a union all statement to the query.
              *
              * @param \Illuminate\Database\Query\Builder|\Closure $query
@@ -14990,68 +16012,74 @@ namespace  {
              * @static 
              */ 
             public static function unionAll($query)
-            {    
-                return \Illuminate\Database\Query\Builder::unionAll($query);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->unionAll($query);
             }
-         
-            /**
+             
+                /**
              * Lock the selected rows in the table.
              *
              * @param string|bool $value
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function lock($value = true)
-            {    
-                return \Illuminate\Database\Query\Builder::lock($value);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->lock($value);
             }
-         
-            /**
+             
+                /**
              * Lock the selected rows in the table for updating.
              *
              * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function lockForUpdate()
-            {    
-                return \Illuminate\Database\Query\Builder::lockForUpdate();
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->lockForUpdate();
             }
-         
-            /**
+             
+                /**
              * Share lock the selected rows in the table.
              *
              * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function sharedLock()
-            {    
-                return \Illuminate\Database\Query\Builder::sharedLock();
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->sharedLock();
             }
-         
-            /**
+             
+                /**
              * Get the SQL representation of the query.
              *
              * @return string 
              * @static 
              */ 
             public static function toSql()
-            {    
-                return \Illuminate\Database\Query\Builder::toSql();
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->toSql();
             }
-         
-            /**
+             
+                /**
              * Get the count of the total records for the paginator.
              *
              * @param array $columns
              * @return int 
              * @static 
              */ 
-            public static function getCountForPagination($columns = array())
-            {    
-                return \Illuminate\Database\Query\Builder::getCountForPagination($columns);
+            public static function getCountForPagination($columns = [])
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->getCountForPagination($columns);
             }
-         
-            /**
+             
+                /**
              * Concatenate values of a given column as a string.
              *
              * @param string $column
@@ -15060,33 +16088,62 @@ namespace  {
              * @static 
              */ 
             public static function implode($column, $glue = '')
-            {    
-                return \Illuminate\Database\Query\Builder::implode($column, $glue);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->implode($column, $glue);
             }
-         
-            /**
+             
+                /**
              * Determine if any rows exist for the current query.
              *
              * @return bool 
              * @static 
              */ 
             public static function exists()
-            {    
-                return \Illuminate\Database\Query\Builder::exists();
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->exists();
             }
-         
-            /**
+             
+                /**
              * Determine if no rows exist for the current query.
              *
              * @return bool 
              * @static 
              */ 
             public static function doesntExist()
-            {    
-                return \Illuminate\Database\Query\Builder::doesntExist();
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->doesntExist();
             }
-         
-            /**
+             
+                /**
+             * Execute the given callback if no rows exist for the current query.
+             *
+             * @param \Closure $callback
+             * @return mixed 
+             * @static 
+             */ 
+            public static function existsOr($callback)
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->existsOr($callback);
+            }
+             
+                /**
+             * Execute the given callback if rows exist for the current query.
+             *
+             * @param \Closure $callback
+             * @return mixed 
+             * @static 
+             */ 
+            public static function doesntExistOr($callback)
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->doesntExistOr($callback);
+            }
+             
+                /**
              * Retrieve the "count" result of the query.
              *
              * @param string $columns
@@ -15094,11 +16151,12 @@ namespace  {
              * @static 
              */ 
             public static function count($columns = '*')
-            {    
-                return \Illuminate\Database\Query\Builder::count($columns);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->count($columns);
             }
-         
-            /**
+             
+                /**
              * Retrieve the minimum value of a given column.
              *
              * @param string $column
@@ -15106,11 +16164,12 @@ namespace  {
              * @static 
              */ 
             public static function min($column)
-            {    
-                return \Illuminate\Database\Query\Builder::min($column);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->min($column);
             }
-         
-            /**
+             
+                /**
              * Retrieve the maximum value of a given column.
              *
              * @param string $column
@@ -15118,11 +16177,12 @@ namespace  {
              * @static 
              */ 
             public static function max($column)
-            {    
-                return \Illuminate\Database\Query\Builder::max($column);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->max($column);
             }
-         
-            /**
+             
+                /**
              * Retrieve the sum of the values of a given column.
              *
              * @param string $column
@@ -15130,11 +16190,12 @@ namespace  {
              * @static 
              */ 
             public static function sum($column)
-            {    
-                return \Illuminate\Database\Query\Builder::sum($column);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->sum($column);
             }
-         
-            /**
+             
+                /**
              * Retrieve the average of the values of a given column.
              *
              * @param string $column
@@ -15142,11 +16203,12 @@ namespace  {
              * @static 
              */ 
             public static function avg($column)
-            {    
-                return \Illuminate\Database\Query\Builder::avg($column);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->avg($column);
             }
-         
-            /**
+             
+                /**
              * Alias for the "avg" method.
              *
              * @param string $column
@@ -15154,11 +16216,12 @@ namespace  {
              * @static 
              */ 
             public static function average($column)
-            {    
-                return \Illuminate\Database\Query\Builder::average($column);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->average($column);
             }
-         
-            /**
+             
+                /**
              * Execute an aggregate function on the database.
              *
              * @param string $function
@@ -15166,12 +16229,13 @@ namespace  {
              * @return mixed 
              * @static 
              */ 
-            public static function aggregate($function, $columns = array())
-            {    
-                return \Illuminate\Database\Query\Builder::aggregate($function, $columns);
+            public static function aggregate($function, $columns = [])
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->aggregate($function, $columns);
             }
-         
-            /**
+             
+                /**
              * Execute a numeric aggregate function on the database.
              *
              * @param string $function
@@ -15179,12 +16243,13 @@ namespace  {
              * @return float|int 
              * @static 
              */ 
-            public static function numericAggregate($function, $columns = array())
-            {    
-                return \Illuminate\Database\Query\Builder::numericAggregate($function, $columns);
+            public static function numericAggregate($function, $columns = [])
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->numericAggregate($function, $columns);
             }
-         
-            /**
+             
+                /**
              * Insert a new record into the database.
              *
              * @param array $values
@@ -15192,11 +16257,25 @@ namespace  {
              * @static 
              */ 
             public static function insert($values)
-            {    
-                return \Illuminate\Database\Query\Builder::insert($values);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->insert($values);
             }
-         
-            /**
+             
+                /**
+             * Insert a new record into the database while ignoring errors.
+             *
+             * @param array $values
+             * @return int 
+             * @static 
+             */ 
+            public static function insertOrIgnore($values)
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->insertOrIgnore($values);
+            }
+             
+                /**
              * Insert a new record and get the value of the primary key.
              *
              * @param array $values
@@ -15205,11 +16284,26 @@ namespace  {
              * @static 
              */ 
             public static function insertGetId($values, $sequence = null)
-            {    
-                return \Illuminate\Database\Query\Builder::insertGetId($values, $sequence);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->insertGetId($values, $sequence);
             }
-         
-            /**
+             
+                /**
+             * Insert new records into the table using a subquery.
+             *
+             * @param array $columns
+             * @param \Closure|\Illuminate\Database\Query\Builder|string $query
+             * @return int 
+             * @static 
+             */ 
+            public static function insertUsing($columns, $query)
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->insertUsing($columns, $query);
+            }
+             
+                /**
              * Insert or update a record matching the attributes, and fill it with values.
              *
              * @param array $attributes
@@ -15217,23 +16311,25 @@ namespace  {
              * @return bool 
              * @static 
              */ 
-            public static function updateOrInsert($attributes, $values = array())
-            {    
-                return \Illuminate\Database\Query\Builder::updateOrInsert($attributes, $values);
+            public static function updateOrInsert($attributes, $values = [])
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->updateOrInsert($attributes, $values);
             }
-         
-            /**
+             
+                /**
              * Run a truncate statement on the table.
              *
              * @return void 
              * @static 
              */ 
             public static function truncate()
-            {    
-                \Illuminate\Database\Query\Builder::truncate();
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                $instance->truncate();
             }
-         
-            /**
+             
+                /**
              * Create a raw database expression.
              *
              * @param mixed $value
@@ -15241,106 +16337,115 @@ namespace  {
              * @static 
              */ 
             public static function raw($value)
-            {    
-                return \Illuminate\Database\Query\Builder::raw($value);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->raw($value);
             }
-         
-            /**
+             
+                /**
              * Get the current query value bindings in a flattened array.
              *
              * @return array 
              * @static 
              */ 
             public static function getBindings()
-            {    
-                return \Illuminate\Database\Query\Builder::getBindings();
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->getBindings();
             }
-         
-            /**
+             
+                /**
              * Get the raw array of bindings.
              *
              * @return array 
              * @static 
              */ 
             public static function getRawBindings()
-            {    
-                return \Illuminate\Database\Query\Builder::getRawBindings();
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->getRawBindings();
             }
-         
-            /**
+             
+                /**
              * Set the bindings on the query builder.
              *
              * @param array $bindings
              * @param string $type
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @throws \InvalidArgumentException
              * @static 
              */ 
             public static function setBindings($bindings, $type = 'where')
-            {    
-                return \Illuminate\Database\Query\Builder::setBindings($bindings, $type);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->setBindings($bindings, $type);
             }
-         
-            /**
+             
+                /**
              * Add a binding to the query.
              *
              * @param mixed $value
              * @param string $type
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @throws \InvalidArgumentException
              * @static 
              */ 
             public static function addBinding($value, $type = 'where')
-            {    
-                return \Illuminate\Database\Query\Builder::addBinding($value, $type);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->addBinding($value, $type);
             }
-         
-            /**
+             
+                /**
              * Merge an array of bindings into our bindings.
              *
              * @param \Illuminate\Database\Query\Builder $query
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function mergeBindings($query)
-            {    
-                return \Illuminate\Database\Query\Builder::mergeBindings($query);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->mergeBindings($query);
             }
-         
-            /**
+             
+                /**
              * Get the database query processor instance.
              *
              * @return \Illuminate\Database\Query\Processors\Processor 
              * @static 
              */ 
             public static function getProcessor()
-            {    
-                return \Illuminate\Database\Query\Builder::getProcessor();
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->getProcessor();
             }
-         
-            /**
+             
+                /**
              * Get the query grammar instance.
              *
              * @return \Illuminate\Database\Query\Grammars\Grammar 
              * @static 
              */ 
             public static function getGrammar()
-            {    
-                return \Illuminate\Database\Query\Builder::getGrammar();
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->getGrammar();
             }
-         
-            /**
+             
+                /**
              * Use the write pdo for query.
              *
-             * @return $this 
+             * @return \Illuminate\Database\Query\Builder 
              * @static 
              */ 
             public static function useWritePdo()
-            {    
-                return \Illuminate\Database\Query\Builder::useWritePdo();
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->useWritePdo();
             }
-         
-            /**
+             
+                /**
              * Clone the query without the given properties.
              *
              * @param array $properties
@@ -15348,11 +16453,12 @@ namespace  {
              * @static 
              */ 
             public static function cloneWithout($properties)
-            {    
-                return \Illuminate\Database\Query\Builder::cloneWithout($properties);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->cloneWithout($properties);
             }
-         
-            /**
+             
+                /**
              * Clone the query without the given bindings.
              *
              * @param array $except
@@ -15360,11 +16466,36 @@ namespace  {
              * @static 
              */ 
             public static function cloneWithoutBindings($except)
-            {    
-                return \Illuminate\Database\Query\Builder::cloneWithoutBindings($except);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->cloneWithoutBindings($except);
             }
-         
-            /**
+             
+                /**
+             * Dump the current SQL and bindings.
+             *
+             * @return \Illuminate\Database\Query\Builder 
+             * @static 
+             */ 
+            public static function dump()
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->dump();
+            }
+             
+                /**
+             * Die and dump the current SQL and bindings.
+             *
+             * @return void 
+             * @static 
+             */ 
+            public static function dd()
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                $instance->dd();
+            }
+             
+                /**
              * Register a custom macro.
              *
              * @param string $name
@@ -15373,36 +16504,25 @@ namespace  {
              * @static 
              */ 
             public static function macro($name, $macro)
-            {    
-                \Illuminate\Database\Query\Builder::macro($name, $macro);
+            {
+                                \Illuminate\Database\Query\Builder::macro($name, $macro);
             }
-         
-            /**
+             
+                /**
              * Mix another object into the class.
              *
              * @param object $mixin
+             * @param bool $replace
              * @return void 
              * @throws \ReflectionException
              * @static 
              */ 
-            public static function mixin($mixin)
-            {    
-                \Illuminate\Database\Query\Builder::mixin($mixin);
-            }
-         
-            /**
-             * Checks if macro is registered.
-             *
-             * @param string $name
-             * @return bool 
-             * @static 
-             */ 
-            public static function hasMacro($name)
-            {    
-                return \Illuminate\Database\Query\Builder::hasMacro($name);
+            public static function mixin($mixin, $replace = true)
+            {
+                                \Illuminate\Database\Query\Builder::mixin($mixin, $replace);
             }
-         
-            /**
+             
+                /**
              * Dynamically handle calls to the class.
              *
              * @param string $method
@@ -15412,54 +16532,34 @@ namespace  {
              * @static 
              */ 
             public static function macroCall($method, $parameters)
-            {    
-                return \Illuminate\Database\Query\Builder::macroCall($method, $parameters);
+            {
+                                /** @var \Illuminate\Database\Query\Builder $instance */
+                                return $instance->macroCall($method, $parameters);
             }
-        }
-
-    class Event extends \Illuminate\Support\Facades\Event {}
-
-    class File extends \Illuminate\Support\Facades\File {}
-
-    class Gate extends \Illuminate\Support\Facades\Gate {}
-
-    class Hash extends \Illuminate\Support\Facades\Hash {}
-
-    class Lang extends \Illuminate\Support\Facades\Lang {}
-
-    class Log extends \Illuminate\Support\Facades\Log {}
-
-    class Mail extends \Illuminate\Support\Facades\Mail {}
-
-    class Notification extends \Illuminate\Support\Facades\Notification {}
-
-    class Password extends \Illuminate\Support\Facades\Password {}
-
-    class Queue extends \Illuminate\Support\Facades\Queue {}
-
-    class Redirect extends \Illuminate\Support\Facades\Redirect {}
-
-    class Request extends \Illuminate\Support\Facades\Request {}
-
-    class Response extends \Illuminate\Support\Facades\Response {}
-
-    class Route extends \Illuminate\Support\Facades\Route {}
-
-    class Schema extends \Illuminate\Support\Facades\Schema {}
-
-    class Session extends \Illuminate\Support\Facades\Session {}
-
-    class Storage extends \Illuminate\Support\Facades\Storage {}
-
-    class URL extends \Illuminate\Support\Facades\URL {}
-
-    class Validator extends \Illuminate\Support\Facades\Validator {}
-
-    class View extends \Illuminate\Support\Facades\View {}
-
-    class Mongo extends \App\Mongo\Facade {}
- 
+                    }
+            class Event extends \Illuminate\Support\Facades\Event {}
+            class File extends \Illuminate\Support\Facades\File {}
+            class Gate extends \Illuminate\Support\Facades\Gate {}
+            class Hash extends \Illuminate\Support\Facades\Hash {}
+            class Lang extends \Illuminate\Support\Facades\Lang {}
+            class Log extends \Illuminate\Support\Facades\Log {}
+            class Mail extends \Illuminate\Support\Facades\Mail {}
+            class Notification extends \Illuminate\Support\Facades\Notification {}
+            class Password extends \Illuminate\Support\Facades\Password {}
+            class Queue extends \Illuminate\Support\Facades\Queue {}
+            class Redirect extends \Illuminate\Support\Facades\Redirect {}
+            class Request extends \Illuminate\Support\Facades\Request {}
+            class Response extends \Illuminate\Support\Facades\Response {}
+            class Route extends \Illuminate\Support\Facades\Route {}
+            class Schema extends \Illuminate\Support\Facades\Schema {}
+            class Session extends \Illuminate\Support\Facades\Session {}
+            class Storage extends \Illuminate\Support\Facades\Storage {}
+            class URL extends \Illuminate\Support\Facades\URL {}
+            class Validator extends \Illuminate\Support\Facades\Validator {}
+            class View extends \Illuminate\Support\Facades\View {}
+     
 }
 
 
 
+
diff --git a/app/Notification.php b/app/Notification.php
index 41362346a05760272bbc08533878acf157f638a4..865b05c21d93f59f49211ac72c2d23029fdb25a4 100644
--- a/app/Notification.php
+++ b/app/Notification.php
@@ -5,6 +5,27 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Support\Facades\Mail;
 
+/**
+ * App\Notification
+ *
+ * @property int $id
+ * @property \Illuminate\Support\Carbon $created_at
+ * @property \Illuminate\Support\Carbon $updated_at
+ * @property int $server_id
+ * @property string $change_id
+ * @property string $type
+ * @property-read \App\Server $server
+ * @method static \Illuminate\Database\Eloquent\Builder|Notification newModelQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder|Notification newQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder|Notification query()
+ * @method static \Illuminate\Database\Eloquent\Builder|Notification whereChangeId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Notification whereCreatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Notification whereId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Notification whereServerId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Notification whereType($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Notification whereUpdatedAt($value)
+ * @mixin \Eloquent
+ */
 class Notification extends Model
 {
 
diff --git a/app/Organization.php b/app/Organization.php
index 5cb895bf30e2bf790ffd6b9e581ce6e909b2b2ec..0a5cbe8ac31faf2f1dc8bc85fe6c50c62f94df6d 100644
--- a/app/Organization.php
+++ b/app/Organization.php
@@ -4,6 +4,28 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
+/**
+ * App\Organization
+ *
+ * @property int $id
+ * @property \Illuminate\Support\Carbon|null $created_at
+ * @property \Illuminate\Support\Carbon|null $updated_at
+ * @property string $name
+ * @property string $dashboard_token
+ * @property-read \Illuminate\Database\Eloquent\Collection|\App\Server[] $servers
+ * @property-read int|null $servers_count
+ * @property-read \Illuminate\Database\Eloquent\Collection|\App\User[] $users
+ * @property-read int|null $users_count
+ * @method static \Illuminate\Database\Eloquent\Builder|Organization newModelQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder|Organization newQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder|Organization query()
+ * @method static \Illuminate\Database\Eloquent\Builder|Organization whereCreatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Organization whereDashboardToken($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Organization whereId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Organization whereName($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Organization whereUpdatedAt($value)
+ * @mixin \Eloquent
+ */
 class Organization extends Model
 {
 
diff --git a/app/Sensor/LoadAvg.php b/app/Sensor/LoadAvg.php
index 517a046820559c7c69a30c3d664b0cfef8b0f4e4..db1e628790e155b5e91f675f4fa092398d5e229f 100644
--- a/app/Sensor/LoadAvg.php
+++ b/app/Sensor/LoadAvg.php
@@ -51,7 +51,7 @@ class LoadAvg extends AbstractSensor
         return \App\Status::OK;
     }
 
-    public function parse($string) : float
+    public function parse($string) : string
     {
         return current(explode(" ", $string));
     }
diff --git a/app/Server.php b/app/Server.php
index 95c3f790bf518d6f30735ae3bea9527937ca2e03..914e6a434bd354df2ff93f6c7501048a98c70e04 100644
--- a/app/Server.php
+++ b/app/Server.php
@@ -6,6 +6,29 @@ use App\Mongo;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Support\Facades\Log;
 
+/**
+ * App\Server
+ *
+ * @property int $id
+ * @property int $organization_id
+ * @property \Illuminate\Support\Carbon|null $created_at
+ * @property \Illuminate\Support\Carbon|null $updated_at
+ * @property string $name
+ * @property string $token
+ * @property string $read_token
+ * @property-read \App\Organization $organization
+ * @method static \Illuminate\Database\Eloquent\Builder|Server newModelQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder|Server newQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder|Server query()
+ * @method static \Illuminate\Database\Eloquent\Builder|Server whereCreatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Server whereId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Server whereName($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Server whereOrganizationId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Server whereReadToken($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Server whereToken($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Server whereUpdatedAt($value)
+ * @mixin \Eloquent
+ */
 class Server extends Model
 {
 
diff --git a/app/User.php b/app/User.php
index 6d108fa9d8eba75cbc4f143a21df283b025ed886..d714d7ce76d6c2e5663552630f6390d7f18e12a8 100644
--- a/app/User.php
+++ b/app/User.php
@@ -5,6 +5,31 @@ namespace App;
 use Illuminate\Notifications\Notifiable;
 use Illuminate\Foundation\Auth\User as Authenticatable;
 
+/**
+ * App\User
+ *
+ * @property int $id
+ * @property string $name
+ * @property string $email
+ * @property string $password
+ * @property string|null $remember_token
+ * @property \Illuminate\Support\Carbon|null $created_at
+ * @property \Illuminate\Support\Carbon|null $updated_at
+ * @property-read int|null $notifications_count
+ * @property-read \Illuminate\Database\Eloquent\Collection|\App\Organization[] $organizations
+ * @property-read int|null $organizations_count
+ * @method static \Illuminate\Database\Eloquent\Builder|User newModelQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder|User newQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder|User query()
+ * @method static \Illuminate\Database\Eloquent\Builder|User whereCreatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|User whereEmail($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|User whereId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|User whereName($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|User wherePassword($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|User whereRememberToken($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|User whereUpdatedAt($value)
+ * @mixin \Eloquent
+ */
 class User extends Authenticatable
 {
     use Notifiable;