diff --git a/.gitignore b/.gitignore
index 8023638..5f9da8c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
 .DS_Store
+**/.DS_Store
 /vendor
 /node_modules
 Homestead.yaml
diff --git a/_ide_helper.php b/_ide_helper.php
index b307038..8aa4dcb 100644
--- a/_ide_helper.php
+++ b/_ide_helper.php
@@ -1,7 +1,7 @@
 <?php
 /**
  * A helper file for Laravel 5, to provide autocomplete information to your IDE
- * Generated for Laravel 5.3.9 on 2016-09-17.
+ * Generated for Laravel 5.2.23 on 2016-03-14.
  *
  * @author Barry vd. Heuvel <barryvdh@gmail.com>
  * @see https://github.com/barryvdh/laravel-ide-helper
@@ -192,16 +192,6 @@ namespace {
         }
         
         /**
-         * Get the path to the resources directory.
-         *
-         * @return string 
-         * @static 
-         */
-        public static function resourcePath(){
-            return \Illuminate\Foundation\Application::resourcePath();
-        }
-        
-        /**
          * Get the path to the environment file directory.
          *
          * @return string 
@@ -244,18 +234,9 @@ namespace {
         }
         
         /**
-         * Get the fully qualified path to the environment file.
-         *
-         * @return string 
-         * @static 
-         */
-        public static function environmentFilePath(){
-            return \Illuminate\Foundation\Application::environmentFilePath();
-        }
-        
-        /**
          * Get or check the current application environment.
          *
+         * @param mixed
          * @return string|bool 
          * @static 
          */
@@ -1044,13 +1025,13 @@ namespace {
         /**
          * Set the shared instance of the container.
          *
-         * @param \Illuminate\Contracts\Container\Container|null $container
-         * @return static 
+         * @param \Illuminate\Contracts\Container\Container $container
+         * @return void 
          * @static 
          */
-        public static function setInstance($container = null){
+        public static function setInstance($container){
             //Method inherited from \Illuminate\Container\Container            
-            return \Illuminate\Foundation\Application::setInstance($container);
+            \Illuminate\Foundation\Application::setInstance($container);
         }
         
         /**
@@ -1134,31 +1115,6 @@ namespace {
         }
         
         /**
-         * Register a Closure based command with the application.
-         *
-         * @param string $signature
-         * @param \Closure $callback
-         * @return \Illuminate\Foundation\Console\ClosureCommand 
-         * @static 
-         */
-        public static function command($signature, $callback){
-            //Method inherited from \Illuminate\Foundation\Console\Kernel            
-            return \Portal\Console\Kernel::command($signature, $callback);
-        }
-        
-        /**
-         * Register the given command with the console application.
-         *
-         * @param \Symfony\Component\Console\Command\Command $command
-         * @return void 
-         * @static 
-         */
-        public static function registerCommand($command){
-            //Method inherited from \Illuminate\Foundation\Console\Kernel            
-            \Portal\Console\Kernel::registerCommand($command);
-        }
-        
-        /**
          * Run an Artisan console command by name.
          *
          * @param string $command
@@ -1358,747 +1314,380 @@ namespace {
             return \Illuminate\Auth\AuthManager::createUserProvider($provider);
         }
         
+    }
+
+
+    class Blade extends \Illuminate\Support\Facades\Blade{
+        
         /**
-         * Get the currently authenticated user.
+         * Compile the view at the given path.
          *
-         * @return \Portal\User|null 
+         * @param string $path
+         * @return void 
          * @static 
          */
-        public static function user(){
-            return \Illuminate\Auth\SessionGuard::user();
+        public static function compile($path = null){
+            \Illuminate\View\Compilers\BladeCompiler::compile($path);
         }
         
         /**
-         * Get the ID for the currently authenticated user.
+         * Get the path currently being compiled.
          *
-         * @return int|null 
+         * @return string 
          * @static 
          */
-        public static function id(){
-            return \Illuminate\Auth\SessionGuard::id();
+        public static function getPath(){
+            return \Illuminate\View\Compilers\BladeCompiler::getPath();
         }
         
         /**
-         * Log a user into the application without sessions or cookies.
+         * Set the path currently being compiled.
          *
-         * @param array $credentials
-         * @return bool 
+         * @param string $path
+         * @return void 
          * @static 
          */
-        public static function once($credentials = array()){
-            return \Illuminate\Auth\SessionGuard::once($credentials);
+        public static function setPath($path){
+            \Illuminate\View\Compilers\BladeCompiler::setPath($path);
         }
         
         /**
-         * Validate a user's credentials.
+         * Compile the given Blade template contents.
          *
-         * @param array $credentials
-         * @return bool 
+         * @param string $value
+         * @return string 
          * @static 
          */
-        public static function validate($credentials = array()){
-            return \Illuminate\Auth\SessionGuard::validate($credentials);
+        public static function compileString($value){
+            return \Illuminate\View\Compilers\BladeCompiler::compileString($value);
         }
         
         /**
-         * Attempt to authenticate using HTTP Basic Auth.
+         * Compile the default values for the echo statement.
          *
-         * @param string $field
-         * @param array $extraConditions
-         * @return \Symfony\Component\HttpFoundation\Response|null 
+         * @param string $value
+         * @return string 
          * @static 
          */
-        public static function basic($field = 'email', $extraConditions = array()){
-            return \Illuminate\Auth\SessionGuard::basic($field, $extraConditions);
+        public static function compileEchoDefaults($value){
+            return \Illuminate\View\Compilers\BladeCompiler::compileEchoDefaults($value);
         }
         
         /**
-         * Perform a stateless HTTP Basic login attempt.
+         * Get the extensions used by the compiler.
          *
-         * @param string $field
-         * @param array $extraConditions
-         * @return \Symfony\Component\HttpFoundation\Response|null 
+         * @return array 
          * @static 
          */
-        public static function onceBasic($field = 'email', $extraConditions = array()){
-            return \Illuminate\Auth\SessionGuard::onceBasic($field, $extraConditions);
+        public static function getExtensions(){
+            return \Illuminate\View\Compilers\BladeCompiler::getExtensions();
         }
         
         /**
-         * Attempt to authenticate a user using the given credentials.
+         * Register a custom Blade compiler.
          *
-         * @param array $credentials
-         * @param bool $remember
-         * @param bool $login
-         * @return bool 
+         * @param callable $compiler
+         * @return void 
          * @static 
          */
-        public static function attempt($credentials = array(), $remember = false, $login = true){
-            return \Illuminate\Auth\SessionGuard::attempt($credentials, $remember, $login);
+        public static function extend($compiler){
+            \Illuminate\View\Compilers\BladeCompiler::extend($compiler);
         }
         
         /**
-         * Register an authentication attempt event listener.
+         * Register a handler for custom directives.
          *
-         * @param mixed $callback
+         * @param string $name
+         * @param callable $handler
          * @return void 
          * @static 
          */
-        public static function attempting($callback){
-            \Illuminate\Auth\SessionGuard::attempting($callback);
+        public static function directive($name, $handler){
+            \Illuminate\View\Compilers\BladeCompiler::directive($name, $handler);
         }
         
         /**
-         * Log a user into the application.
+         * Get the list of custom directives.
          *
-         * @param \Illuminate\Contracts\Auth\Authenticatable $user
-         * @param bool $remember
-         * @return void 
+         * @return array 
          * @static 
          */
-        public static function login($user, $remember = false){
-            \Illuminate\Auth\SessionGuard::login($user, $remember);
+        public static function getCustomDirectives(){
+            return \Illuminate\View\Compilers\BladeCompiler::getCustomDirectives();
         }
         
         /**
-         * Log the given user ID into the application.
+         * Gets the raw tags used by the compiler.
          *
-         * @param mixed $id
-         * @param bool $remember
-         * @return \Portal\User|false 
+         * @return array 
          * @static 
          */
-        public static function loginUsingId($id, $remember = false){
-            return \Illuminate\Auth\SessionGuard::loginUsingId($id, $remember);
+        public static function getRawTags(){
+            return \Illuminate\View\Compilers\BladeCompiler::getRawTags();
         }
         
         /**
-         * Log the given user ID into the application without sessions or cookies.
+         * Sets the raw tags used for the compiler.
          *
-         * @param mixed $id
-         * @return \Portal\User|false 
+         * @param string $openTag
+         * @param string $closeTag
+         * @return void 
          * @static 
          */
-        public static function onceUsingId($id){
-            return \Illuminate\Auth\SessionGuard::onceUsingId($id);
+        public static function setRawTags($openTag, $closeTag){
+            \Illuminate\View\Compilers\BladeCompiler::setRawTags($openTag, $closeTag);
         }
         
         /**
-         * Log the user out of the application.
+         * Sets the content tags used for the compiler.
          *
+         * @param string $openTag
+         * @param string $closeTag
+         * @param bool $escaped
          * @return void 
          * @static 
          */
-        public static function logout(){
-            \Illuminate\Auth\SessionGuard::logout();
+        public static function setContentTags($openTag, $closeTag, $escaped = false){
+            \Illuminate\View\Compilers\BladeCompiler::setContentTags($openTag, $closeTag, $escaped);
         }
         
         /**
-         * Get the cookie creator instance used by the guard.
+         * Sets the escaped content tags used for the compiler.
          *
-         * @return \Illuminate\Contracts\Cookie\QueueingFactory 
-         * @throws \RuntimeException
+         * @param string $openTag
+         * @param string $closeTag
+         * @return void 
          * @static 
          */
-        public static function getCookieJar(){
-            return \Illuminate\Auth\SessionGuard::getCookieJar();
+        public static function setEscapedContentTags($openTag, $closeTag){
+            \Illuminate\View\Compilers\BladeCompiler::setEscapedContentTags($openTag, $closeTag);
         }
         
         /**
-         * Set the cookie creator instance used by the guard.
+         * Gets the content tags used for the compiler.
          *
-         * @param \Illuminate\Contracts\Cookie\QueueingFactory $cookie
-         * @return void 
+         * @return string 
          * @static 
          */
-        public static function setCookieJar($cookie){
-            \Illuminate\Auth\SessionGuard::setCookieJar($cookie);
+        public static function getContentTags(){
+            return \Illuminate\View\Compilers\BladeCompiler::getContentTags();
         }
         
         /**
-         * Get the event dispatcher instance.
+         * Gets the escaped content tags used for the compiler.
          *
-         * @return \Illuminate\Contracts\Events\Dispatcher 
+         * @return string 
          * @static 
          */
-        public static function getDispatcher(){
-            return \Illuminate\Auth\SessionGuard::getDispatcher();
+        public static function getEscapedContentTags(){
+            return \Illuminate\View\Compilers\BladeCompiler::getEscapedContentTags();
         }
         
         /**
-         * Set the event dispatcher instance.
+         * Set the echo format to be used by the compiler.
          *
-         * @param \Illuminate\Contracts\Events\Dispatcher $events
+         * @param string $format
          * @return void 
          * @static 
          */
-        public static function setDispatcher($events){
-            \Illuminate\Auth\SessionGuard::setDispatcher($events);
+        public static function setEchoFormat($format){
+            \Illuminate\View\Compilers\BladeCompiler::setEchoFormat($format);
         }
         
         /**
-         * Get the session store used by the guard.
+         * Get the path to the compiled version of a view.
          *
-         * @return \Illuminate\Session\Store 
+         * @param string $path
+         * @return string 
          * @static 
          */
-        public static function getSession(){
-            return \Illuminate\Auth\SessionGuard::getSession();
+        public static function getCompiledPath($path){
+            //Method inherited from \Illuminate\View\Compilers\Compiler            
+            return \Illuminate\View\Compilers\BladeCompiler::getCompiledPath($path);
         }
         
         /**
-         * Get the user provider used by the guard.
+         * Determine if the view at the given path is expired.
          *
-         * @return \Illuminate\Contracts\Auth\UserProvider 
+         * @param string $path
+         * @return bool 
          * @static 
          */
-        public static function getProvider(){
-            return \Illuminate\Auth\SessionGuard::getProvider();
+        public static function isExpired($path){
+            //Method inherited from \Illuminate\View\Compilers\Compiler            
+            return \Illuminate\View\Compilers\BladeCompiler::isExpired($path);
         }
         
+    }
+
+
+    class Bus extends \Illuminate\Support\Facades\Bus{
+        
         /**
-         * Set the user provider used by the guard.
+         * Dispatch a command to its appropriate handler.
          *
-         * @param \Illuminate\Contracts\Auth\UserProvider $provider
-         * @return void 
+         * @param mixed $command
+         * @return mixed 
          * @static 
          */
-        public static function setProvider($provider){
-            \Illuminate\Auth\SessionGuard::setProvider($provider);
+        public static function dispatch($command){
+            return \Illuminate\Bus\Dispatcher::dispatch($command);
         }
         
         /**
-         * Return the currently cached user.
+         * Dispatch a command to its appropriate handler in the current process.
          *
-         * @return \Portal\User|null 
+         * @param mixed $command
+         * @return mixed 
          * @static 
          */
-        public static function getUser(){
-            return \Illuminate\Auth\SessionGuard::getUser();
+        public static function dispatchNow($command){
+            return \Illuminate\Bus\Dispatcher::dispatchNow($command);
         }
         
         /**
-         * Set the current user.
+         * Dispatch a command to its appropriate handler behind a queue.
          *
-         * @param \Illuminate\Contracts\Auth\Authenticatable $user
-         * @return $this 
+         * @param mixed $command
+         * @return mixed 
+         * @throws \RuntimeException
          * @static 
          */
-        public static function setUser($user){
-            return \Illuminate\Auth\SessionGuard::setUser($user);
+        public static function dispatchToQueue($command){
+            return \Illuminate\Bus\Dispatcher::dispatchToQueue($command);
         }
         
         /**
-         * Get the current request instance.
+         * Set the pipes through which commands should be piped before dispatching.
          *
-         * @return \Symfony\Component\HttpFoundation\Request 
+         * @param array $pipes
+         * @return $this 
          * @static 
          */
-        public static function getRequest(){
-            return \Illuminate\Auth\SessionGuard::getRequest();
+        public static function pipeThrough($pipes){
+            return \Illuminate\Bus\Dispatcher::pipeThrough($pipes);
         }
         
+    }
+
+
+    class Cache extends \Illuminate\Support\Facades\Cache{
+        
         /**
-         * Set the current request instance.
+         * Get a cache store instance by name.
          *
-         * @param \Symfony\Component\HttpFoundation\Request $request
-         * @return $this 
+         * @param string|null $name
+         * @return mixed 
          * @static 
          */
-        public static function setRequest($request){
-            return \Illuminate\Auth\SessionGuard::setRequest($request);
+        public static function store($name = null){
+            return \Illuminate\Cache\CacheManager::store($name);
         }
         
         /**
-         * Get the last user we attempted to authenticate.
+         * Get a cache driver instance.
          *
-         * @return \Portal\User 
+         * @param string $driver
+         * @return mixed 
          * @static 
          */
-        public static function getLastAttempted(){
-            return \Illuminate\Auth\SessionGuard::getLastAttempted();
+        public static function driver($driver = null){
+            return \Illuminate\Cache\CacheManager::driver($driver);
         }
         
         /**
-         * Get a unique identifier for the auth session value.
+         * Create a new cache repository with the given implementation.
          *
-         * @return string 
+         * @param \Illuminate\Contracts\Cache\Store $store
+         * @return \Illuminate\Cache\Repository 
          * @static 
          */
-        public static function getName(){
-            return \Illuminate\Auth\SessionGuard::getName();
+        public static function repository($store){
+            return \Illuminate\Cache\CacheManager::repository($store);
         }
         
         /**
-         * Get the name of the cookie used to store the "recaller".
+         * Get the default cache driver name.
          *
          * @return string 
          * @static 
          */
-        public static function getRecallerName(){
-            return \Illuminate\Auth\SessionGuard::getRecallerName();
+        public static function getDefaultDriver(){
+            return \Illuminate\Cache\CacheManager::getDefaultDriver();
         }
         
         /**
-         * Determine if the user was authenticated via "remember me" cookie.
+         * Set the default cache driver name.
          *
-         * @return bool 
+         * @param string $name
+         * @return void 
          * @static 
          */
-        public static function viaRemember(){
-            return \Illuminate\Auth\SessionGuard::viaRemember();
+        public static function setDefaultDriver($name){
+            \Illuminate\Cache\CacheManager::setDefaultDriver($name);
         }
         
         /**
-         * Determine if the current user is authenticated.
+         * Register a custom driver creator Closure.
          *
-         * @return bool 
+         * @param string $driver
+         * @param \Closure $callback
+         * @return $this 
          * @static 
          */
-        public static function check(){
-            return \Illuminate\Auth\SessionGuard::check();
+        public static function extend($driver, $callback){
+            return \Illuminate\Cache\CacheManager::extend($driver, $callback);
         }
         
         /**
-         * Determine if the current user is a guest.
+         * Set the event dispatcher instance.
          *
-         * @return bool 
+         * @param \Illuminate\Contracts\Events\Dispatcher $events
+         * @return void 
          * @static 
          */
-        public static function guest(){
-            return \Illuminate\Auth\SessionGuard::guest();
+        public static function setEventDispatcher($events){
+            \Illuminate\Cache\Repository::setEventDispatcher($events);
         }
         
         /**
-         * Determine if the current user is authenticated.
+         * Determine if an item exists in the cache.
          *
-         * @return \Portal\User 
-         * @throws \Illuminate\Auth\AuthenticationException
+         * @param string $key
+         * @return bool 
          * @static 
          */
-        public static function authenticate(){
-            return \Illuminate\Auth\SessionGuard::authenticate();
+        public static function has($key){
+            return \Illuminate\Cache\Repository::has($key);
         }
         
-    }
-
-
-    class Blade extends \Illuminate\Support\Facades\Blade{
-        
         /**
-         * Compile the view at the given path.
+         * Retrieve an item from the cache by key.
          *
-         * @param string $path
-         * @return void 
+         * @param string $key
+         * @param mixed $default
+         * @return mixed 
          * @static 
          */
-        public static function compile($path = null){
-            \Illuminate\View\Compilers\BladeCompiler::compile($path);
+        public static function get($key, $default = null){
+            return \Illuminate\Cache\Repository::get($key, $default);
         }
         
         /**
-         * Get the path currently being compiled.
+         * Retrieve multiple items from the cache by key.
+         * 
+         * Items not found in the cache will have a null value.
          *
-         * @return string 
+         * @param array $keys
+         * @return array 
          * @static 
          */
-        public static function getPath(){
-            return \Illuminate\View\Compilers\BladeCompiler::getPath();
+        public static function many($keys){
+            return \Illuminate\Cache\Repository::many($keys);
         }
         
         /**
-         * Set the path currently being compiled.
-         *
-         * @param string $path
-         * @return void 
-         * @static 
-         */
-        public static function setPath($path){
-            \Illuminate\View\Compilers\BladeCompiler::setPath($path);
-        }
-        
-        /**
-         * Compile the given Blade template contents.
-         *
-         * @param string $value
-         * @return string 
-         * @static 
-         */
-        public static function compileString($value){
-            return \Illuminate\View\Compilers\BladeCompiler::compileString($value);
-        }
-        
-        /**
-         * 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);
-        }
-        
-        /**
-         * Strip the parentheses from the given expression.
-         *
-         * @param string $expression
-         * @return string 
-         * @static 
-         */
-        public static function stripParentheses($expression){
-            return \Illuminate\View\Compilers\BladeCompiler::stripParentheses($expression);
-        }
-        
-        /**
-         * Get the extensions used by the compiler.
-         *
-         * @return array 
-         * @static 
-         */
-        public static function getExtensions(){
-            return \Illuminate\View\Compilers\BladeCompiler::getExtensions();
-        }
-        
-        /**
-         * Register a custom Blade compiler.
-         *
-         * @param callable $compiler
-         * @return void 
-         * @static 
-         */
-        public static function extend($compiler){
-            \Illuminate\View\Compilers\BladeCompiler::extend($compiler);
-        }
-        
-        /**
-         * Register a handler for custom directives.
-         *
-         * @param string $name
-         * @param callable $handler
-         * @return void 
-         * @static 
-         */
-        public static function directive($name, $handler){
-            \Illuminate\View\Compilers\BladeCompiler::directive($name, $handler);
-        }
-        
-        /**
-         * Get the list of custom directives.
-         *
-         * @return array 
-         * @static 
-         */
-        public static function getCustomDirectives(){
-            return \Illuminate\View\Compilers\BladeCompiler::getCustomDirectives();
-        }
-        
-        /**
-         * Gets the raw tags used by the compiler.
-         *
-         * @return array 
-         * @static 
-         */
-        public static function getRawTags(){
-            return \Illuminate\View\Compilers\BladeCompiler::getRawTags();
-        }
-        
-        /**
-         * Sets the raw tags used for the compiler.
-         *
-         * @param string $openTag
-         * @param string $closeTag
-         * @return void 
-         * @static 
-         */
-        public static function setRawTags($openTag, $closeTag){
-            \Illuminate\View\Compilers\BladeCompiler::setRawTags($openTag, $closeTag);
-        }
-        
-        /**
-         * Sets the content tags used for the compiler.
-         *
-         * @param string $openTag
-         * @param string $closeTag
-         * @param bool $escaped
-         * @return void 
-         * @static 
-         */
-        public static function setContentTags($openTag, $closeTag, $escaped = false){
-            \Illuminate\View\Compilers\BladeCompiler::setContentTags($openTag, $closeTag, $escaped);
-        }
-        
-        /**
-         * Sets the escaped content tags used for the compiler.
-         *
-         * @param string $openTag
-         * @param string $closeTag
-         * @return void 
-         * @static 
-         */
-        public static function setEscapedContentTags($openTag, $closeTag){
-            \Illuminate\View\Compilers\BladeCompiler::setEscapedContentTags($openTag, $closeTag);
-        }
-        
-        /**
-         * Gets the content tags used for the compiler.
-         *
-         * @return string 
-         * @static 
-         */
-        public static function getContentTags(){
-            return \Illuminate\View\Compilers\BladeCompiler::getContentTags();
-        }
-        
-        /**
-         * Gets the escaped content tags used for the compiler.
-         *
-         * @return string 
-         * @static 
-         */
-        public static function getEscapedContentTags(){
-            return \Illuminate\View\Compilers\BladeCompiler::getEscapedContentTags();
-        }
-        
-        /**
-         * Set the echo format to be used by the compiler.
-         *
-         * @param string $format
-         * @return void 
-         * @static 
-         */
-        public static function setEchoFormat($format){
-            \Illuminate\View\Compilers\BladeCompiler::setEchoFormat($format);
-        }
-        
-        /**
-         * Get the path to the compiled version of a view.
-         *
-         * @param string $path
-         * @return string 
-         * @static 
-         */
-        public static function getCompiledPath($path){
-            //Method inherited from \Illuminate\View\Compilers\Compiler            
-            return \Illuminate\View\Compilers\BladeCompiler::getCompiledPath($path);
-        }
-        
-        /**
-         * Determine if the view at the given path is expired.
-         *
-         * @param string $path
-         * @return bool 
-         * @static 
-         */
-        public static function isExpired($path){
-            //Method inherited from \Illuminate\View\Compilers\Compiler            
-            return \Illuminate\View\Compilers\BladeCompiler::isExpired($path);
-        }
-        
-    }
-
-
-    class Bus extends \Illuminate\Support\Facades\Bus{
-        
-        /**
-         * Dispatch a command to its appropriate handler.
-         *
-         * @param mixed $command
-         * @return mixed 
-         * @static 
-         */
-        public static function dispatch($command){
-            return \Illuminate\Bus\Dispatcher::dispatch($command);
-        }
-        
-        /**
-         * Dispatch a command to its appropriate handler in the current process.
-         *
-         * @param mixed $command
-         * @param mixed $handler
-         * @return mixed 
-         * @static 
-         */
-        public static function dispatchNow($command, $handler = null){
-            return \Illuminate\Bus\Dispatcher::dispatchNow($command, $handler);
-        }
-        
-        /**
-         * Determine if the given command has a handler.
-         *
-         * @param mixed $command
-         * @return bool 
-         * @static 
-         */
-        public static function hasCommandHandler($command){
-            return \Illuminate\Bus\Dispatcher::hasCommandHandler($command);
-        }
-        
-        /**
-         * Retrieve the handler for a command.
-         *
-         * @param mixed $command
-         * @return bool|mixed 
-         * @static 
-         */
-        public static function getCommandHandler($command){
-            return \Illuminate\Bus\Dispatcher::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);
-        }
-        
-        /**
-         * Set the pipes through which commands should be piped before dispatching.
-         *
-         * @param array $pipes
-         * @return $this 
-         * @static 
-         */
-        public static function pipeThrough($pipes){
-            return \Illuminate\Bus\Dispatcher::pipeThrough($pipes);
-        }
-        
-        /**
-         * Map a command to a handler.
-         *
-         * @param array $map
-         * @return $this 
-         * @static 
-         */
-        public static function map($map){
-            return \Illuminate\Bus\Dispatcher::map($map);
-        }
-        
-    }
-
-
-    class Cache extends \Illuminate\Support\Facades\Cache{
-        
-        /**
-         * Get a cache store instance by name.
-         *
-         * @param string|null $name
-         * @return mixed 
-         * @static 
-         */
-        public static function store($name = null){
-            return \Illuminate\Cache\CacheManager::store($name);
-        }
-        
-        /**
-         * Get a cache driver instance.
-         *
-         * @param string $driver
-         * @return mixed 
-         * @static 
-         */
-        public static function driver($driver = null){
-            return \Illuminate\Cache\CacheManager::driver($driver);
-        }
-        
-        /**
-         * Create a new cache repository with the given implementation.
-         *
-         * @param \Illuminate\Contracts\Cache\Store $store
-         * @return \Illuminate\Cache\Repository 
-         * @static 
-         */
-        public static function repository($store){
-            return \Illuminate\Cache\CacheManager::repository($store);
-        }
-        
-        /**
-         * Get the default cache driver name.
-         *
-         * @return string 
-         * @static 
-         */
-        public static function getDefaultDriver(){
-            return \Illuminate\Cache\CacheManager::getDefaultDriver();
-        }
-        
-        /**
-         * Set the default cache driver name.
-         *
-         * @param string $name
-         * @return void 
-         * @static 
-         */
-        public static function setDefaultDriver($name){
-            \Illuminate\Cache\CacheManager::setDefaultDriver($name);
-        }
-        
-        /**
-         * Register a custom driver creator Closure.
-         *
-         * @param string $driver
-         * @param \Closure $callback
-         * @return $this 
-         * @static 
-         */
-        public static function extend($driver, $callback){
-            return \Illuminate\Cache\CacheManager::extend($driver, $callback);
-        }
-        
-        /**
-         * Set the event dispatcher instance.
-         *
-         * @param \Illuminate\Contracts\Events\Dispatcher $events
-         * @return void 
-         * @static 
-         */
-        public static function setEventDispatcher($events){
-            \Illuminate\Cache\Repository::setEventDispatcher($events);
-        }
-        
-        /**
-         * Determine if an item exists in the cache.
-         *
-         * @param string $key
-         * @return bool 
-         * @static 
-         */
-        public static function has($key){
-            return \Illuminate\Cache\Repository::has($key);
-        }
-        
-        /**
-         * Retrieve an item from the cache by key.
-         *
-         * @param string $key
-         * @param mixed $default
-         * @return mixed 
-         * @static 
-         */
-        public static function get($key, $default = null){
-            return \Illuminate\Cache\Repository::get($key, $default);
-        }
-        
-        /**
-         * Retrieve multiple items from the cache by key.
-         * 
-         * Items not found in the cache will have a null value.
-         *
-         * @param array $keys
-         * @return array 
-         * @static 
-         */
-        public static function many($keys){
-            return \Illuminate\Cache\Repository::many($keys);
-        }
-        
-        /**
-         * Retrieve an item from the cache and delete it.
+         * Retrieve an item from the cache and delete it.
          *
          * @param string $key
          * @param mixed $default
@@ -2114,7 +1703,7 @@ namespace {
          *
          * @param string $key
          * @param mixed $value
-         * @param \DateTime|float|int $minutes
+         * @param \DateTime|int $minutes
          * @return void 
          * @static 
          */
@@ -2126,7 +1715,7 @@ namespace {
          * Store multiple items in the cache for a given number of minutes.
          *
          * @param array $values
-         * @param float|int $minutes
+         * @param int $minutes
          * @return void 
          * @static 
          */
@@ -2139,7 +1728,7 @@ namespace {
          *
          * @param string $key
          * @param mixed $value
-         * @param \DateTime|float|int $minutes
+         * @param \DateTime|int $minutes
          * @return bool 
          * @static 
          */
@@ -2148,30 +1737,6 @@ namespace {
         }
         
         /**
-         * Increment the value of an item in the cache.
-         *
-         * @param string $key
-         * @param mixed $value
-         * @return int|bool 
-         * @static 
-         */
-        public static function increment($key, $value = 1){
-            return \Illuminate\Cache\Repository::increment($key, $value);
-        }
-        
-        /**
-         * Decrement the value of an item in the cache.
-         *
-         * @param string $key
-         * @param mixed $value
-         * @return int|bool 
-         * @static 
-         */
-        public static function decrement($key, $value = 1){
-            return \Illuminate\Cache\Repository::decrement($key, $value);
-        }
-        
-        /**
          * Store an item in the cache indefinitely.
          *
          * @param string $key
@@ -2187,7 +1752,7 @@ namespace {
          * Get an item from the cache, or store the default value.
          *
          * @param string $key
-         * @param \DateTime|float|int $minutes
+         * @param \DateTime|int $minutes
          * @param \Closure $callback
          * @return mixed 
          * @static 
@@ -2246,7 +1811,7 @@ namespace {
         /**
          * Get the default cache time.
          *
-         * @return float|int 
+         * @return int 
          * @static 
          */
         public static function getDefaultCacheTime(){
@@ -2256,7 +1821,7 @@ namespace {
         /**
          * Set the default cache time in minutes.
          *
-         * @param float|int $minutes
+         * @param int $minutes
          * @return void 
          * @static 
          */
@@ -2356,6 +1921,30 @@ namespace {
         }
         
         /**
+         * Increment the value of an item in the cache.
+         *
+         * @param string $key
+         * @param mixed $value
+         * @return int 
+         * @static 
+         */
+        public static function increment($key, $value = 1){
+            return \Illuminate\Cache\FileStore::increment($key, $value);
+        }
+        
+        /**
+         * Decrement the value of an item in the cache.
+         *
+         * @param string $key
+         * @param mixed $value
+         * @return int 
+         * @static 
+         */
+        public static function decrement($key, $value = 1){
+            return \Illuminate\Cache\FileStore::decrement($key, $value);
+        }
+        
+        /**
          * Remove all items from the cache.
          *
          * @return void 
@@ -2591,6 +2180,7 @@ namespace {
         /**
          * Queue a cookie to send with the next response.
          *
+         * @param mixed
          * @return void 
          * @static 
          */
@@ -2673,16 +2263,6 @@ namespace {
             return \Illuminate\Encryption\Encrypter::decrypt($payload);
         }
         
-        /**
-         * Get the encryption key.
-         *
-         * @return string 
-         * @static 
-         */
-        public static function getKey(){
-            return \Illuminate\Encryption\Encrypter::getKey();
-        }
-        
     }
 
 
@@ -2914,29 +2494,6 @@ namespace {
         }
         
         /**
-         * 
-         *
-         * @static 
-         */
-        public static function cursor($query, $bindings = array(), $useReadPdo = true){
-            //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\MySqlConnection::cursor($query, $bindings, $useReadPdo);
-        }
-        
-        /**
-         * Bind values to their parameters in the given statement.
-         *
-         * @param \PDOStatement $statement
-         * @param array $bindings
-         * @return void 
-         * @static 
-         */
-        public static function bindValues($statement, $bindings){
-            //Method inherited from \Illuminate\Database\Connection            
-            \Illuminate\Database\MySqlConnection::bindValues($statement, $bindings);
-        }
-        
-        /**
          * Run an insert statement against the database.
          *
          * @param string $query
@@ -3029,21 +2586,19 @@ namespace {
          * Execute a Closure within a transaction.
          *
          * @param \Closure $callback
-         * @param int $attempts
          * @return mixed 
          * @throws \Exception|\Throwable
          * @static 
          */
-        public static function transaction($callback, $attempts = 1){
+        public static function transaction($callback){
             //Method inherited from \Illuminate\Database\Connection            
-            return \Illuminate\Database\MySqlConnection::transaction($callback, $attempts);
+            return \Illuminate\Database\MySqlConnection::transaction($callback);
         }
         
         /**
          * Start a new database transaction.
          *
          * @return void 
-         * @throws Exception
          * @static 
          */
         public static function beginTransaction(){
@@ -3564,21 +3119,11 @@ namespace {
         }
         
         /**
-         * 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();
-        }
-        
-        /**
          * Find a model by its primary key.
          *
          * @param mixed $id
          * @param array $columns
-         * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static[]|static|null 
+         * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|null 
          * @static 
          */
         public static function find($id, $columns = array()){
@@ -3586,7 +3131,7 @@ namespace {
         }
         
         /**
-         * Find multiple models by their primary keys.
+         * Find a model by its primary key.
          *
          * @param array $ids
          * @param array $columns
@@ -3637,12 +3182,11 @@ namespace {
          * Get the first record matching the attributes or create it.
          *
          * @param array $attributes
-         * @param array $values
          * @return \Illuminate\Database\Eloquent\Model 
          * @static 
          */
-        public static function firstOrCreate($attributes, $values = array()){
-            return \Illuminate\Database\Eloquent\Builder::firstOrCreate($attributes, $values);
+        public static function firstOrCreate($attributes){
+            return \Illuminate\Database\Eloquent\Builder::firstOrCreate($attributes);
         }
         
         /**
@@ -3703,38 +3247,15 @@ namespace {
         }
         
         /**
-         * Get a generator for the given query.
-         *
-         * @return \Generator 
-         * @static 
-         */
-        public static function cursor(){
-            return \Illuminate\Database\Eloquent\Builder::cursor();
-        }
-        
-        /**
-         * Chunk the results of the query.
-         *
-         * @param int $count
-         * @param callable $callback
-         * @return bool 
-         * @static 
-         */
-        public static function chunk($count, $callback){
-            return \Illuminate\Database\Eloquent\Builder::chunk($count, $callback);
-        }
-        
-        /**
-         * Chunk the results of a query by comparing numeric IDs.
+         * Chunk the results of the query.
          *
          * @param int $count
          * @param callable $callback
-         * @param string $column
          * @return bool 
          * @static 
          */
-        public static function chunkById($count, $callback, $column = 'id'){
-            return \Illuminate\Database\Eloquent\Builder::chunkById($count, $callback, $column);
+        public static function chunk($count, $callback){
+            return \Illuminate\Database\Eloquent\Builder::chunk($count, $callback);
         }
         
         /**
@@ -3762,6 +3283,19 @@ namespace {
         }
         
         /**
+         * Alias for the "pluck" method.
+         *
+         * @param string $column
+         * @param string $key
+         * @return \Illuminate\Support\Collection 
+         * @deprecated since version 5.2. Use the "pluck" method directly.
+         * @static 
+         */
+        public static function lists($column, $key = null){
+            return \Illuminate\Database\Eloquent\Builder::lists($column, $key);
+        }
+        
+        /**
          * Paginate the given query.
          *
          * @param int $perPage
@@ -3782,12 +3316,11 @@ namespace {
          * @param int $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 = array(), $pageName = 'page'){
+            return \Illuminate\Database\Eloquent\Builder::simplePaginate($perPage, $columns, $pageName);
         }
         
         /**
@@ -3824,18 +3357,6 @@ namespace {
         }
         
         /**
-         * Apply the callback's query changes if the given "value" is true.
-         *
-         * @param bool $value
-         * @param \Closure $callback
-         * @return $this 
-         * @static 
-         */
-        public static function when($value, $callback){
-            return \Illuminate\Database\Eloquent\Builder::when($value, $callback);
-        }
-        
-        /**
          * Add a basic where clause to the query.
          *
          * @param string $column
@@ -3944,50 +3465,6 @@ namespace {
         }
         
         /**
-         * Merge the constraints from a relation query to the current query.
-         *
-         * @param \Illuminate\Database\Eloquent\Builder $relation
-         * @return \Illuminate\Database\Eloquent\Builder|static 
-         * @static 
-         */
-        public static function mergeModelDefinedRelationConstraints($relation){
-            return \Illuminate\Database\Eloquent\Builder::mergeModelDefinedRelationConstraints($relation);
-        }
-        
-        /**
-         * Prevent the specified relations from being eager loaded.
-         *
-         * @param mixed $relations
-         * @return $this 
-         * @static 
-         */
-        public static function without($relations){
-            return \Illuminate\Database\Eloquent\Builder::without($relations);
-        }
-        
-        /**
-         * Add subselect queries to count the relations.
-         *
-         * @param mixed $relations
-         * @return $this 
-         * @static 
-         */
-        public static function withCount($relations){
-            return \Illuminate\Database\Eloquent\Builder::withCount($relations);
-        }
-        
-        /**
-         * Add the given scopes to the current builder instance.
-         *
-         * @param array $scopes
-         * @return mixed 
-         * @static 
-         */
-        public static function scopes($scopes){
-            return \Illuminate\Database\Eloquent\Builder::scopes($scopes);
-        }
-        
-        /**
          * Apply the scopes to the Eloquent builder instance and return it.
          *
          * @return \Illuminate\Database\Eloquent\Builder|static 
@@ -4000,7 +3477,7 @@ namespace {
         /**
          * Get the underlying query builder instance.
          *
-         * @return \Illuminate\Database\Query\Builder 
+         * @return \Illuminate\Database\Query\Builder|static 
          * @static 
          */
         public static function getQuery(){
@@ -4249,51 +3726,10 @@ namespace {
         }
         
         /**
-         * Add a "cross join" clause to the query.
-         *
-         * @param string $table
-         * @param string $first
-         * @param string $operator
-         * @param string $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);
-        }
-        
-        /**
-         * Add a "where" clause comparing two columns to the query.
-         *
-         * @param string|array $first
-         * @param string|null $operator
-         * @param string|null $second
-         * @param string|null $boolean
-         * @return \Illuminate\Database\Query\Builder|static 
-         * @static 
-         */
-        public static function whereColumn($first, $operator = null, $second = null, $boolean = 'and'){
-            return \Illuminate\Database\Query\Builder::whereColumn($first, $operator, $second, $boolean);
-        }
-        
-        /**
-         * Add an "or where" clause comparing two columns to the query.
-         *
-         * @param string|array $first
-         * @param string|null $operator
-         * @param string|null $second
-         * @return \Illuminate\Database\Query\Builder|static 
-         * @static 
-         */
-        public static function orWhereColumn($first, $operator = null, $second = null){
-            return \Illuminate\Database\Query\Builder::orWhereColumn($first, $operator, $second);
-        }
-        
-        /**
          * Add a raw where clause to the query.
          *
          * @param string $sql
-         * @param mixed $bindings
+         * @param array $bindings
          * @param string $boolean
          * @return $this 
          * @static 
@@ -4563,12 +3999,12 @@ namespace {
          *
          * @param string $column
          * @param string $operator
-         * @param mixed $value
+         * @param int $value
          * @param string $boolean
          * @return \Illuminate\Database\Query\Builder|static 
          * @static 
          */
-        public static function whereDate($column, $operator, $value = null, $boolean = 'and'){
+        public static function whereDate($column, $operator, $value, $boolean = 'and'){
             return \Illuminate\Database\Query\Builder::whereDate($column, $operator, $value, $boolean);
         }
         
@@ -4577,7 +4013,7 @@ namespace {
          *
          * @param string $column
          * @param string $operator
-         * @param string $value
+         * @param int $value
          * @return \Illuminate\Database\Query\Builder|static 
          * @static 
          */
@@ -4586,43 +4022,16 @@ namespace {
         }
         
         /**
-         * Add a "where time" statement to the query.
-         *
-         * @param string $column
-         * @param string $operator
-         * @param int $value
-         * @param string $boolean
-         * @return \Illuminate\Database\Query\Builder|static 
-         * @static 
-         */
-        public static function whereTime($column, $operator, $value, $boolean = 'and'){
-            return \Illuminate\Database\Query\Builder::whereTime($column, $operator, $value, $boolean);
-        }
-        
-        /**
-         * Add an "or where time" statement to the query.
-         *
-         * @param string $column
-         * @param string $operator
-         * @param int $value
-         * @return \Illuminate\Database\Query\Builder|static 
-         * @static 
-         */
-        public static function orWhereTime($column, $operator, $value){
-            return \Illuminate\Database\Query\Builder::orWhereTime($column, $operator, $value);
-        }
-        
-        /**
          * Add a "where day" statement to the query.
          *
          * @param string $column
          * @param string $operator
-         * @param mixed $value
+         * @param int $value
          * @param string $boolean
          * @return \Illuminate\Database\Query\Builder|static 
          * @static 
          */
-        public static function whereDay($column, $operator, $value = null, $boolean = 'and'){
+        public static function whereDay($column, $operator, $value, $boolean = 'and'){
             return \Illuminate\Database\Query\Builder::whereDay($column, $operator, $value, $boolean);
         }
         
@@ -4631,12 +4040,12 @@ namespace {
          *
          * @param string $column
          * @param string $operator
-         * @param mixed $value
+         * @param int $value
          * @param string $boolean
          * @return \Illuminate\Database\Query\Builder|static 
          * @static 
          */
-        public static function whereMonth($column, $operator, $value = null, $boolean = 'and'){
+        public static function whereMonth($column, $operator, $value, $boolean = 'and'){
             return \Illuminate\Database\Query\Builder::whereMonth($column, $operator, $value, $boolean);
         }
         
@@ -4645,12 +4054,12 @@ namespace {
          *
          * @param string $column
          * @param string $operator
-         * @param mixed $value
+         * @param int $value
          * @param string $boolean
          * @return \Illuminate\Database\Query\Builder|static 
          * @static 
          */
-        public static function whereYear($column, $operator, $value = null, $boolean = 'and'){
+        public static function whereYear($column, $operator, $value, $boolean = 'and'){
             return \Illuminate\Database\Query\Builder::whereYear($column, $operator, $value, $boolean);
         }
         
@@ -4669,12 +4078,12 @@ namespace {
         /**
          * Add a "group by" clause to the query.
          *
-         * @param array $groups
+         * @param array|string $column,...
          * @return $this 
          * @static 
          */
-        public static function groupBy($groups = null){
-            return \Illuminate\Database\Query\Builder::groupBy($groups);
+        public static function groupBy(){
+            return \Illuminate\Database\Query\Builder::groupBy();
         }
         
         /**
@@ -4764,17 +4173,6 @@ namespace {
         }
         
         /**
-         * Put the query's results in random order.
-         *
-         * @param string $seed
-         * @return $this 
-         * @static 
-         */
-        public static function inRandomOrder($seed = ''){
-            return \Illuminate\Database\Query\Builder::inRandomOrder($seed);
-        }
-        
-        /**
          * Add a raw "order by" clause to the query.
          *
          * @param string $sql
@@ -4843,19 +4241,6 @@ namespace {
         }
         
         /**
-         * Constrain the query to the next "page" of results after a given ID.
-         *
-         * @param int $perPage
-         * @param int $lastId
-         * @param string $column
-         * @return \Illuminate\Database\Query\Builder|static 
-         * @static 
-         */
-        public static function forPageAfterId($perPage = 15, $lastId = 0, $column = 'id'){
-            return \Illuminate\Database\Query\Builder::forPageAfterId($perPage, $lastId, $column);
-        }
-        
-        /**
          * Add a union statement to the query.
          *
          * @param \Illuminate\Database\Query\Builder|\Closure $query
@@ -4967,7 +4352,7 @@ namespace {
          * Retrieve the minimum value of a given column.
          *
          * @param string $column
-         * @return mixed 
+         * @return float|int 
          * @static 
          */
         public static function min($column){
@@ -4978,7 +4363,7 @@ namespace {
          * Retrieve the maximum value of a given column.
          *
          * @param string $column
-         * @return mixed 
+         * @return float|int 
          * @static 
          */
         public static function max($column){
@@ -4989,7 +4374,7 @@ namespace {
          * Retrieve the sum of the values of a given column.
          *
          * @param string $column
-         * @return mixed 
+         * @return float|int 
          * @static 
          */
         public static function sum($column){
@@ -5000,7 +4385,7 @@ namespace {
          * Retrieve the average of the values of a given column.
          *
          * @param string $column
-         * @return mixed 
+         * @return float|int 
          * @static 
          */
         public static function avg($column){
@@ -5011,7 +4396,7 @@ namespace {
          * Alias for the "avg" method.
          *
          * @param string $column
-         * @return mixed 
+         * @return float|int 
          * @static 
          */
         public static function average($column){
@@ -5023,7 +4408,7 @@ namespace {
          *
          * @param string $function
          * @param array $columns
-         * @return mixed 
+         * @return float|int 
          * @static 
          */
         public static function aggregate($function, $columns = array()){
@@ -5031,18 +4416,6 @@ namespace {
         }
         
         /**
-         * Execute a numeric aggregate function on the database.
-         *
-         * @param string $function
-         * @param array $columns
-         * @return float|int 
-         * @static 
-         */
-        public static function numericAggregate($function, $columns = array()){
-            return \Illuminate\Database\Query\Builder::numericAggregate($function, $columns);
-        }
-        
-        /**
          * Insert a new record into the database.
          *
          * @param array $values
@@ -5066,18 +4439,6 @@ namespace {
         }
         
         /**
-         * Insert or update a record matching the attributes, and fill it with values.
-         *
-         * @param array $attributes
-         * @param array $values
-         * @return bool 
-         * @static 
-         */
-        public static function updateOrInsert($attributes, $values = array()){
-            return \Illuminate\Database\Query\Builder::updateOrInsert($attributes, $values);
-        }
-        
-        /**
          * Run a truncate statement on the table.
          *
          * @return void 
@@ -5404,24 +4765,12 @@ namespace {
          * Get the contents of a file.
          *
          * @param string $path
-         * @param bool $lock
          * @return string 
          * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
          * @static 
          */
-        public static function get($path, $lock = false){
-            return \Illuminate\Filesystem\Filesystem::get($path, $lock);
-        }
-        
-        /**
-         * Get contents of a file with shared access.
-         *
-         * @param string $path
-         * @return string 
-         * @static 
-         */
-        public static function sharedGet($path){
-            return \Illuminate\Filesystem\Filesystem::sharedGet($path);
+        public static function get($path){
+            return \Illuminate\Filesystem\Filesystem::get($path);
         }
         
         /**
@@ -5520,18 +4869,6 @@ namespace {
         }
         
         /**
-         * Create a hard link to the target file or directory.
-         *
-         * @param string $target
-         * @param string $link
-         * @return void 
-         * @static 
-         */
-        public static function link($target, $link){
-            \Illuminate\Filesystem\Filesystem::link($target, $link);
-        }
-        
-        /**
          * Extract the file name from a file path.
          *
          * @param string $path
@@ -5631,17 +4968,6 @@ namespace {
         }
         
         /**
-         * Determine if the given path is readable.
-         *
-         * @param string $path
-         * @return bool 
-         * @static 
-         */
-        public static function isReadable($path){
-            return \Illuminate\Filesystem\Filesystem::isReadable($path);
-        }
-        
-        /**
          * Determine if the given path is writable.
          *
          * @param string $path
@@ -5690,12 +5016,11 @@ namespace {
          * Get all of the files from the given directory (recursive).
          *
          * @param string $directory
-         * @param bool $hidden
          * @return array 
          * @static 
          */
-        public static function allFiles($directory, $hidden = false){
-            return \Illuminate\Filesystem\Filesystem::allFiles($directory, $hidden);
+        public static function allFiles($directory){
+            return \Illuminate\Filesystem\Filesystem::allFiles($directory);
         }
         
         /**
@@ -5724,19 +5049,6 @@ namespace {
         }
         
         /**
-         * Move a directory.
-         *
-         * @param string $from
-         * @param string $to
-         * @param bool $overwrite
-         * @return bool 
-         * @static 
-         */
-        public static function moveDirectory($from, $to, $overwrite = false){
-            return \Illuminate\Filesystem\Filesystem::moveDirectory($from, $to, $overwrite);
-        }
-        
-        /**
          * Copy a directory from one location to another.
          *
          * @param string $directory
@@ -5933,7 +5245,7 @@ namespace {
         }
         
         /**
-         * Get a gate instance for the given user.
+         * Get a guard instance for the given user.
          *
          * @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user
          * @return static 
@@ -6118,6 +5430,7 @@ namespace {
         /**
          * Determine if the current request URI matches a pattern.
          *
+         * @param mixed  string
          * @return bool 
          * @static 
          */
@@ -6128,6 +5441,7 @@ namespace {
         /**
          * Determine if the current request URL and query string matches a pattern.
          *
+         * @param mixed  string
          * @return bool 
          * @static 
          */
@@ -6230,7 +5544,7 @@ namespace {
         }
         
         /**
-         * Get a subset containing the provided keys with values from the input data.
+         * Get a subset of the items from the input data.
          *
          * @param array|mixed $keys
          * @return array 
@@ -6252,17 +5566,6 @@ namespace {
         }
         
         /**
-         * Intersect an array of items with the input data.
-         *
-         * @param array|mixed $keys
-         * @return array 
-         * @static 
-         */
-        public static function intersect($keys){
-            return \Illuminate\Http\Request::intersect($keys);
-        }
-        
-        /**
          * Retrieve a query string item from the request.
          *
          * @param string $key
@@ -6312,7 +5615,7 @@ namespace {
          *
          * @param string $key
          * @param mixed $default
-         * @return \Illuminate\Http\UploadedFile|array|null 
+         * @return \Symfony\Component\HttpFoundation\File\UploadedFile|array|null 
          * @static 
          */
         public static function file($key = null, $default = null){
@@ -6331,17 +5634,6 @@ namespace {
         }
         
         /**
-         * Determine if a header is set on the request.
-         *
-         * @param string $key
-         * @return bool 
-         * @static 
-         */
-        public static function hasHeader($key){
-            return \Illuminate\Http\Request::hasHeader($key);
-        }
-        
-        /**
          * Retrieve a header from the request.
          *
          * @param string $key
@@ -6478,16 +5770,6 @@ namespace {
         }
         
         /**
-         * Determine if the current request probably expects a JSON response.
-         *
-         * @return bool 
-         * @static 
-         */
-        public static function expectsJson(){
-            return \Illuminate\Http\Request::expectsJson();
-        }
-        
-        /**
          * Determine if the current request is asking for JSON in return.
          *
          * @return bool 
@@ -6580,7 +5862,7 @@ namespace {
          * @param array $cookies The COOKIE parameters
          * @param array $files The FILES parameters
          * @param array $server The SERVER parameters
-         * @return \Request The duplicated request
+         * @return \Symfony\Component\HttpFoundation\Request The duplicated request
          * @static 
          */
         public static function duplicate($query = null, $request = null, $attributes = null, $cookies = null, $files = null, $server = null){
@@ -6750,7 +6032,7 @@ namespace {
         /**
          * Creates a new request with values from PHP's super globals.
          *
-         * @return \Request A new request
+         * @return \Symfony\Component\HttpFoundation\Request A new request
          * @static 
          */
         public static function createFromGlobals(){
@@ -6771,7 +6053,7 @@ namespace {
          * @param array $files The request files ($_FILES)
          * @param array $server The server parameters ($_SERVER)
          * @param string $content The raw body data
-         * @return \Request A Request instance
+         * @return \Symfony\Component\HttpFoundation\Request A Request instance
          * @static 
          */
         public static function create($uri, $method = 'GET', $parameters = array(), $cookies = array(), $files = array(), $server = array(), $content = null){
@@ -6823,7 +6105,7 @@ namespace {
         /**
          * Gets the list of trusted proxies.
          *
-         * @return array An array of trusted proxies
+         * @return array An array of trusted proxies.
          * @static 
          */
         public static function getTrustedProxies(){
@@ -6847,7 +6129,7 @@ namespace {
         /**
          * Gets the list of trusted host patterns.
          *
-         * @return array An array of trusted host patterns
+         * @return array An array of trusted host patterns.
          * @static 
          */
         public static function getTrustedHosts(){
@@ -6944,7 +6226,7 @@ namespace {
          * Order of precedence: PATH (routing placeholders or custom attributes), GET, BODY
          *
          * @param string $key the key
-         * @param mixed $default the default value if the parameter key does not exist
+         * @param mixed $default the default value
          * @return mixed 
          * @static 
          */
@@ -7367,18 +6649,6 @@ namespace {
         }
         
         /**
-         * Gets the mime types associated with the format.
-         *
-         * @param string $format The format
-         * @return array The associated mime types
-         * @static 
-         */
-        public static function 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
@@ -7408,7 +6678,7 @@ namespace {
          * Here is the process to determine the format:
          * 
          *  * format defined by the user (with setRequestFormat())
-         *  * _format request attribute
+         *  * _format request parameter
          *  * $default
          *
          * @param string $default The default format
@@ -7423,7 +6693,7 @@ namespace {
         /**
          * Sets the request format.
          *
-         * @param string $format The request format
+         * @param string $format The request format.
          * @static 
          */
         public static function setRequestFormat($format){
@@ -7489,7 +6759,7 @@ namespace {
         /**
          * Checks if the request method is of specified type.
          *
-         * @param string $method Uppercase request method (GET, POST etc)
+         * @param string $method Uppercase request method (GET, POST etc).
          * @return bool 
          * @static 
          */
@@ -7513,7 +6783,7 @@ namespace {
          * 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
+         * @return string|resource The request body content or a resource to read the body stream.
          * @throws \LogicException
          * @static 
          */
@@ -7616,20 +6886,6 @@ namespace {
         }
         
         /**
-         * Indicates whether this request originated from a trusted proxy.
-         * 
-         * This can be useful to determine whether or not to trust the
-         * contents of a proxy-specific header.
-         *
-         * @return bool true if the request came from a trusted proxy, false otherwise
-         * @static 
-         */
-        public static function isFromTrustedProxy(){
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::isFromTrustedProxy();
-        }
-        
-        /**
          * Register a custom macro.
          *
          * @param string $name
@@ -7853,50 +7109,27 @@ namespace {
         }
         
         /**
-         * Set the fallback locale being used.
-         *
-         * @param string $fallback
-         * @return void 
-         * @static 
-         */
-        public static function setFallback($fallback){
-            \Illuminate\Translation\Translator::setFallback($fallback);
-        }
-        
-        /**
-         * Set the parsed value of a key.
-         *
-         * @param string $key
-         * @param array $parsed
-         * @return void 
-         * @static 
-         */
-        public static function setParsedKey($key, $parsed){
-            //Method inherited from \Illuminate\Support\NamespacedItemResolver            
-            \Illuminate\Translation\Translator::setParsedKey($key, $parsed);
-        }
-        
-        /**
-         * Register a custom macro.
+         * Set the fallback locale being used.
          *
-         * @param string $name
-         * @param callable $macro
+         * @param string $fallback
          * @return void 
          * @static 
          */
-        public static function macro($name, $macro){
-            \Illuminate\Translation\Translator::macro($name, $macro);
+        public static function setFallback($fallback){
+            \Illuminate\Translation\Translator::setFallback($fallback);
         }
         
         /**
-         * Checks if macro is registered.
+         * Set the parsed value of a key.
          *
-         * @param string $name
-         * @return bool 
+         * @param string $key
+         * @param array $parsed
+         * @return void 
          * @static 
          */
-        public static function hasMacro($name){
-            return \Illuminate\Translation\Translator::hasMacro($name);
+        public static function setParsedKey($key, $parsed){
+            //Method inherited from \Illuminate\Support\NamespacedItemResolver            
+            \Illuminate\Translation\Translator::setParsedKey($key, $parsed);
         }
         
     }
@@ -8121,232 +7354,6 @@ namespace {
     }
 
 
-    class Mail extends \Illuminate\Support\Facades\Mail{
-        
-        /**
-         * Set the global from address and name.
-         *
-         * @param string $address
-         * @param string|null $name
-         * @return void 
-         * @static 
-         */
-        public static function alwaysFrom($address, $name = null){
-            \Illuminate\Mail\Mailer::alwaysFrom($address, $name);
-        }
-        
-        /**
-         * Set the global to address and name.
-         *
-         * @param string $address
-         * @param string|null $name
-         * @return void 
-         * @static 
-         */
-        public static function alwaysTo($address, $name = null){
-            \Illuminate\Mail\Mailer::alwaysTo($address, $name);
-        }
-        
-        /**
-         * Begin the process of mailing a mailable class instance.
-         *
-         * @param mixed $users
-         * @return \Illuminate\Mail\MailableMailer 
-         * @static 
-         */
-        public static function to($users){
-            return \Illuminate\Mail\Mailer::to($users);
-        }
-        
-        /**
-         * Begin the process of mailing a mailable class instance.
-         *
-         * @param mixed $users
-         * @return \Illuminate\Mail\MailableMailer 
-         * @static 
-         */
-        public static function bcc($users){
-            return \Illuminate\Mail\Mailer::bcc($users);
-        }
-        
-        /**
-         * Send a new message when only a raw text part.
-         *
-         * @param string $text
-         * @param mixed $callback
-         * @return void 
-         * @static 
-         */
-        public static function raw($text, $callback){
-            \Illuminate\Mail\Mailer::raw($text, $callback);
-        }
-        
-        /**
-         * Send a new message when only a plain part.
-         *
-         * @param string $view
-         * @param array $data
-         * @param mixed $callback
-         * @return void 
-         * @static 
-         */
-        public static function plain($view, $data, $callback){
-            \Illuminate\Mail\Mailer::plain($view, $data, $callback);
-        }
-        
-        /**
-         * Send a new message using a view.
-         *
-         * @param string|array $view
-         * @param array $data
-         * @param \Closure|string $callback
-         * @return void 
-         * @static 
-         */
-        public static function send($view, $data = array(), $callback = null){
-            \Illuminate\Mail\Mailer::send($view, $data, $callback);
-        }
-        
-        /**
-         * Queue a new e-mail message for sending.
-         *
-         * @param string|array $view
-         * @param array $data
-         * @param \Closure|string $callback
-         * @param string|null $queue
-         * @return mixed 
-         * @static 
-         */
-        public static function queue($view, $data = array(), $callback = null, $queue = null){
-            return \Illuminate\Mail\Mailer::queue($view, $data, $callback, $queue);
-        }
-        
-        /**
-         * Queue a new e-mail message for sending on the given queue.
-         *
-         * @param string $queue
-         * @param string|array $view
-         * @param array $data
-         * @param \Closure|string $callback
-         * @return mixed 
-         * @static 
-         */
-        public static function onQueue($queue, $view, $data, $callback){
-            return \Illuminate\Mail\Mailer::onQueue($queue, $view, $data, $callback);
-        }
-        
-        /**
-         * 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 array $data
-         * @param \Closure|string $callback
-         * @return mixed 
-         * @static 
-         */
-        public static function queueOn($queue, $view, $data, $callback){
-            return \Illuminate\Mail\Mailer::queueOn($queue, $view, $data, $callback);
-        }
-        
-        /**
-         * Queue a new e-mail message for sending after (n) seconds.
-         *
-         * @param int $delay
-         * @param string|array $view
-         * @param array $data
-         * @param \Closure|string $callback
-         * @param string|null $queue
-         * @return mixed 
-         * @static 
-         */
-        public static function later($delay, $view, $data = array(), $callback = null, $queue = null){
-            return \Illuminate\Mail\Mailer::later($delay, $view, $data, $callback, $queue);
-        }
-        
-        /**
-         * Queue a new e-mail message for sending after (n) seconds on the given queue.
-         *
-         * @param string $queue
-         * @param int $delay
-         * @param string|array $view
-         * @param array $data
-         * @param \Closure|string $callback
-         * @return mixed 
-         * @static 
-         */
-        public static function laterOn($queue, $delay, $view, $data, $callback){
-            return \Illuminate\Mail\Mailer::laterOn($queue, $delay, $view, $data, $callback);
-        }
-        
-        /**
-         * Get the view factory instance.
-         *
-         * @return \Illuminate\Contracts\View\Factory 
-         * @static 
-         */
-        public static function getViewFactory(){
-            return \Illuminate\Mail\Mailer::getViewFactory();
-        }
-        
-        /**
-         * Get the Swift Mailer instance.
-         *
-         * @return \Swift_Mailer 
-         * @static 
-         */
-        public static function getSwiftMailer(){
-            return \Illuminate\Mail\Mailer::getSwiftMailer();
-        }
-        
-        /**
-         * Get the array of failed recipients.
-         *
-         * @return array 
-         * @static 
-         */
-        public static function failures(){
-            return \Illuminate\Mail\Mailer::failures();
-        }
-        
-        /**
-         * Set the Swift Mailer instance.
-         *
-         * @param \Swift_Mailer $swift
-         * @return void 
-         * @static 
-         */
-        public static function setSwiftMailer($swift){
-            \Illuminate\Mail\Mailer::setSwiftMailer($swift);
-        }
-        
-        /**
-         * Set the queue manager instance.
-         *
-         * @param \Illuminate\Contracts\Queue\Queue $queue
-         * @return $this 
-         * @static 
-         */
-        public static function setQueue($queue){
-            return \Illuminate\Mail\Mailer::setQueue($queue);
-        }
-        
-        /**
-         * Set the IoC container instance.
-         *
-         * @param \Illuminate\Contracts\Container\Container $container
-         * @return void 
-         * @static 
-         */
-        public static function setContainer($container){
-            \Illuminate\Mail\Mailer::setContainer($container);
-        }
-        
-    }
-
-
     class Password extends \Illuminate\Support\Facades\Password{
         
         /**
@@ -8818,6 +7825,7 @@ namespace {
         /**
          * Determine if the current request URI matches a pattern.
          *
+         * @param mixed  string
          * @return bool 
          * @static 
          */
@@ -8828,6 +7836,7 @@ namespace {
         /**
          * Determine if the current request URL and query string matches a pattern.
          *
+         * @param mixed  string
          * @return bool 
          * @static 
          */
@@ -8930,7 +7939,7 @@ namespace {
         }
         
         /**
-         * Get a subset containing the provided keys with values from the input data.
+         * Get a subset of the items from the input data.
          *
          * @param array|mixed $keys
          * @return array 
@@ -8952,17 +7961,6 @@ namespace {
         }
         
         /**
-         * Intersect an array of items with the input data.
-         *
-         * @param array|mixed $keys
-         * @return array 
-         * @static 
-         */
-        public static function intersect($keys){
-            return \Illuminate\Http\Request::intersect($keys);
-        }
-        
-        /**
          * Retrieve a query string item from the request.
          *
          * @param string $key
@@ -9012,7 +8010,7 @@ namespace {
          *
          * @param string $key
          * @param mixed $default
-         * @return \Illuminate\Http\UploadedFile|array|null 
+         * @return \Symfony\Component\HttpFoundation\File\UploadedFile|array|null 
          * @static 
          */
         public static function file($key = null, $default = null){
@@ -9031,17 +8029,6 @@ namespace {
         }
         
         /**
-         * Determine if a header is set on the request.
-         *
-         * @param string $key
-         * @return bool 
-         * @static 
-         */
-        public static function hasHeader($key){
-            return \Illuminate\Http\Request::hasHeader($key);
-        }
-        
-        /**
          * Retrieve a header from the request.
          *
          * @param string $key
@@ -9178,16 +8165,6 @@ namespace {
         }
         
         /**
-         * Determine if the current request probably expects a JSON response.
-         *
-         * @return bool 
-         * @static 
-         */
-        public static function expectsJson(){
-            return \Illuminate\Http\Request::expectsJson();
-        }
-        
-        /**
          * Determine if the current request is asking for JSON in return.
          *
          * @return bool 
@@ -9280,7 +8257,7 @@ namespace {
          * @param array $cookies The COOKIE parameters
          * @param array $files The FILES parameters
          * @param array $server The SERVER parameters
-         * @return \Request The duplicated request
+         * @return \Symfony\Component\HttpFoundation\Request The duplicated request
          * @static 
          */
         public static function duplicate($query = null, $request = null, $attributes = null, $cookies = null, $files = null, $server = null){
@@ -9450,7 +8427,7 @@ namespace {
         /**
          * Creates a new request with values from PHP's super globals.
          *
-         * @return \Request A new request
+         * @return \Symfony\Component\HttpFoundation\Request A new request
          * @static 
          */
         public static function createFromGlobals(){
@@ -9471,7 +8448,7 @@ namespace {
          * @param array $files The request files ($_FILES)
          * @param array $server The server parameters ($_SERVER)
          * @param string $content The raw body data
-         * @return \Request A Request instance
+         * @return \Symfony\Component\HttpFoundation\Request A Request instance
          * @static 
          */
         public static function create($uri, $method = 'GET', $parameters = array(), $cookies = array(), $files = array(), $server = array(), $content = null){
@@ -9523,7 +8500,7 @@ namespace {
         /**
          * Gets the list of trusted proxies.
          *
-         * @return array An array of trusted proxies
+         * @return array An array of trusted proxies.
          * @static 
          */
         public static function getTrustedProxies(){
@@ -9547,7 +8524,7 @@ namespace {
         /**
          * Gets the list of trusted host patterns.
          *
-         * @return array An array of trusted host patterns
+         * @return array An array of trusted host patterns.
          * @static 
          */
         public static function getTrustedHosts(){
@@ -9644,7 +8621,7 @@ namespace {
          * Order of precedence: PATH (routing placeholders or custom attributes), GET, BODY
          *
          * @param string $key the key
-         * @param mixed $default the default value if the parameter key does not exist
+         * @param mixed $default the default value
          * @return mixed 
          * @static 
          */
@@ -10067,18 +9044,6 @@ namespace {
         }
         
         /**
-         * Gets the mime types associated with the format.
-         *
-         * @param string $format The format
-         * @return array The associated mime types
-         * @static 
-         */
-        public static function 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
@@ -10108,7 +9073,7 @@ namespace {
          * Here is the process to determine the format:
          * 
          *  * format defined by the user (with setRequestFormat())
-         *  * _format request attribute
+         *  * _format request parameter
          *  * $default
          *
          * @param string $default The default format
@@ -10123,7 +9088,7 @@ namespace {
         /**
          * Sets the request format.
          *
-         * @param string $format The request format
+         * @param string $format The request format.
          * @static 
          */
         public static function setRequestFormat($format){
@@ -10189,7 +9154,7 @@ namespace {
         /**
          * Checks if the request method is of specified type.
          *
-         * @param string $method Uppercase request method (GET, POST etc)
+         * @param string $method Uppercase request method (GET, POST etc).
          * @return bool 
          * @static 
          */
@@ -10213,7 +9178,7 @@ namespace {
          * 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
+         * @return string|resource The request body content or a resource to read the body stream.
          * @throws \LogicException
          * @static 
          */
@@ -10316,20 +9281,6 @@ namespace {
         }
         
         /**
-         * Indicates whether this request originated from a trusted proxy.
-         * 
-         * This can be useful to determine whether or not to trust the
-         * contents of a proxy-specific header.
-         *
-         * @return bool true if the request came from a trusted proxy, false otherwise
-         * @static 
-         */
-        public static function isFromTrustedProxy(){
-            //Method inherited from \Symfony\Component\HttpFoundation\Request            
-            return \Illuminate\Http\Request::isFromTrustedProxy();
-        }
-        
-        /**
          * Register a custom macro.
          *
          * @param string $name
@@ -10387,7 +9338,7 @@ namespace {
         /**
          * Return a new JSON response from the application.
          *
-         * @param mixed $data
+         * @param string|array $data
          * @param int $status
          * @param array $headers
          * @param int $options
@@ -10402,7 +9353,7 @@ namespace {
          * Return a new JSONP response from the application.
          *
          * @param string $callback
-         * @param mixed $data
+         * @param string|array $data
          * @param int $status
          * @param array $headers
          * @param int $options
@@ -10648,14 +9599,39 @@ namespace {
         }
         
         /**
+         * Register an array of controllers with wildcard routing.
+         *
+         * @param array $controllers
+         * @return void 
+         * @deprecated since version 5.2.
+         * @static 
+         */
+        public static function controllers($controllers){
+            \Illuminate\Routing\Router::controllers($controllers);
+        }
+        
+        /**
+         * Route a controller to a URI with wildcard routing.
+         *
+         * @param string $uri
+         * @param string $controller
+         * @param array $names
+         * @return void 
+         * @deprecated since version 5.2.
+         * @static 
+         */
+        public static function controller($uri, $controller, $names = array()){
+            \Illuminate\Routing\Router::controller($uri, $controller, $names);
+        }
+        
+        /**
          * Set the unmapped global resource parameters to singular.
          *
-         * @param bool $singular
          * @return void 
          * @static 
          */
-        public static function singularResourceParameters($singular = true){
-            \Illuminate\Routing\Router::singularResourceParameters($singular);
+        public static function singularResourceParameters(){
+            \Illuminate\Routing\Router::singularResourceParameters();
         }
         
         /**
@@ -10777,8 +9753,8 @@ namespace {
          * @return array 
          * @static 
          */
-        public static function gatherRouteMiddleware($route){
-            return \Illuminate\Routing\Router::gatherRouteMiddleware($route);
+        public static function gatherRouteMiddlewares($route){
+            return \Illuminate\Routing\Router::gatherRouteMiddlewares($route);
         }
         
         /**
@@ -10793,28 +9769,6 @@ namespace {
         }
         
         /**
-         * Substitute the route bindings onto the route.
-         *
-         * @param \Illuminate\Routing\Route $route
-         * @return \Illuminate\Routing\Route 
-         * @static 
-         */
-        public static function substituteBindings($route){
-            return \Illuminate\Routing\Router::substituteBindings($route);
-        }
-        
-        /**
-         * Substitute the implicit Eloquent model bindings for the route.
-         *
-         * @param \Illuminate\Routing\Route $route
-         * @return void 
-         * @static 
-         */
-        public static function substituteImplicitBindings($route){
-            \Illuminate\Routing\Router::substituteImplicitBindings($route);
-        }
-        
-        /**
          * Register a route matched event listener.
          *
          * @param string|callable $callback
@@ -10894,7 +9848,7 @@ namespace {
          * @param string $class
          * @param \Closure|null $callback
          * @return void 
-         * @throws \Illuminate\Database\Eloquent\ModelNotFoundException
+         * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
          * @static 
          */
         public static function model($key, $class, $callback = null){
@@ -11035,6 +9989,7 @@ namespace {
         /**
          * Alias for the "currentRouteNamed" method.
          *
+         * @param mixed  string
          * @return bool 
          * @static 
          */
@@ -11066,6 +10021,7 @@ namespace {
         /**
          * Alias for the "currentRouteUses" method.
          *
+         * @param mixed  string
          * @return bool 
          * @static 
          */
@@ -11278,28 +10234,6 @@ namespace {
         }
         
         /**
-         * Enable foreign key constraints.
-         *
-         * @return bool 
-         * @static 
-         */
-        public static function enableForeignKeyConstraints(){
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            return \Illuminate\Database\Schema\MySqlBuilder::enableForeignKeyConstraints();
-        }
-        
-        /**
-         * Disable foreign key constraints.
-         *
-         * @return bool 
-         * @static 
-         */
-        public static function disableForeignKeyConstraints(){
-            //Method inherited from \Illuminate\Database\Schema\Builder            
-            return \Illuminate\Database\Schema\MySqlBuilder::disableForeignKeyConstraints();
-        }
-        
-        /**
          * Get the database connection instance.
          *
          * @return \Illuminate\Database\Connection 
@@ -11409,7 +10343,7 @@ namespace {
         /**
          * Starts the session storage.
          *
-         * @return bool True if session started
+         * @return bool True if session started.
          * @throws \RuntimeException If session fails to start.
          * @static 
          */
@@ -11420,7 +10354,7 @@ namespace {
         /**
          * Returns the session ID.
          *
-         * @return string The session ID
+         * @return string The session ID.
          * @static 
          */
         public static function getId(){
@@ -11451,7 +10385,7 @@ namespace {
         /**
          * Returns the session name.
          *
-         * @return mixed The session name
+         * @return mixed The session name.
          * @static 
          */
         public static function getName(){
@@ -11478,7 +10412,7 @@ namespace {
          *                      will leave the system settings unchanged, 0 sets the cookie
          *                      to expire with browser session. Time is in seconds, and is
          *                      not a Unix timestamp.
-         * @return bool True if session invalidated, false if error
+         * @return bool True if session invalidated, false if error.
          * @static 
          */
         public static function invalidate($lifetime = null){
@@ -11489,12 +10423,12 @@ namespace {
          * Migrates the current session to a new session id while maintaining all
          * session attributes.
          *
-         * @param bool $destroy Whether to delete the old session or leave it to garbage collection
+         * @param bool $destroy Whether to delete the old session or leave it to garbage collection.
          * @param int $lifetime Sets the cookie lifetime for the session cookie. A null value
          *                       will leave the system settings unchanged, 0 sets the cookie
          *                       to expire with browser session. Time is in seconds, and is
          *                       not a Unix timestamp.
-         * @return bool True if session migrated, false if error
+         * @return bool True if session migrated, false if error.
          * @static 
          */
         public static function migrate($destroy = false, $lifetime = null){
@@ -11536,17 +10470,6 @@ namespace {
         }
         
         /**
-         * Checks if an attribute exists.
-         *
-         * @param string|array $key
-         * @return bool 
-         * @static 
-         */
-        public static function exists($key){
-            return \Illuminate\Session\Store::exists($key);
-        }
-        
-        /**
          * Checks if an attribute is defined.
          *
          * @param string $name The attribute name
@@ -11561,7 +10484,7 @@ namespace {
          * Returns an attribute.
          *
          * @param string $name The attribute name
-         * @param mixed $default The default value if not found
+         * @param mixed $default The default value if not found.
          * @return mixed 
          * @static 
          */
@@ -11640,30 +10563,6 @@ namespace {
         }
         
         /**
-         * Increment the value of an item in the session.
-         *
-         * @param string $key
-         * @param int $amount
-         * @return mixed 
-         * @static 
-         */
-        public static function increment($key, $amount = 1){
-            return \Illuminate\Session\Store::increment($key, $amount);
-        }
-        
-        /**
-         * Decrement the value of an item in the session.
-         *
-         * @param string $key
-         * @param int $amount
-         * @return int 
-         * @static 
-         */
-        public static function decrement($key, $amount = 1){
-            return \Illuminate\Session\Store::decrement($key, $amount);
-        }
-        
-        /**
          * Flash a key / value pair to the session.
          *
          * @param string $key
@@ -11923,389 +10822,120 @@ namespace {
          * @static 
          */
         public static function setRequestOnHandler($request){
-            \Illuminate\Session\Store::setRequestOnHandler($request);
-        }
-        
-    }
-
-
-    class Storage extends \Illuminate\Support\Facades\Storage{
-        
-        /**
-         * Get a filesystem instance.
-         *
-         * @param string $name
-         * @return \Illuminate\Filesystem\FilesystemAdapter 
-         * @static 
-         */
-        public static function drive($name = null){
-            return \Illuminate\Filesystem\FilesystemManager::drive($name);
-        }
-        
-        /**
-         * Get a filesystem instance.
-         *
-         * @param string $name
-         * @return \Illuminate\Filesystem\FilesystemAdapter 
-         * @static 
-         */
-        public static function disk($name = null){
-            return \Illuminate\Filesystem\FilesystemManager::disk($name);
-        }
-        
-        /**
-         * Get a default cloud filesystem instance.
-         *
-         * @return \Illuminate\Filesystem\FilesystemAdapter 
-         * @static 
-         */
-        public static function cloud(){
-            return \Illuminate\Filesystem\FilesystemManager::cloud();
-        }
-        
-        /**
-         * Create an instance of the local driver.
-         *
-         * @param array $config
-         * @return \Illuminate\Filesystem\FilesystemAdapter 
-         * @static 
-         */
-        public static function createLocalDriver($config){
-            return \Illuminate\Filesystem\FilesystemManager::createLocalDriver($config);
-        }
-        
-        /**
-         * Create an instance of the ftp driver.
-         *
-         * @param array $config
-         * @return \Illuminate\Filesystem\FilesystemAdapter 
-         * @static 
-         */
-        public static function createFtpDriver($config){
-            return \Illuminate\Filesystem\FilesystemManager::createFtpDriver($config);
-        }
-        
-        /**
-         * Create an instance of the Amazon S3 driver.
-         *
-         * @param array $config
-         * @return \Illuminate\Contracts\Filesystem\Cloud 
-         * @static 
-         */
-        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);
-        }
-        
-        /**
-         * Get the default driver name.
-         *
-         * @return string 
-         * @static 
-         */
-        public static function getDefaultDriver(){
-            return \Illuminate\Filesystem\FilesystemManager::getDefaultDriver();
-        }
-        
-        /**
-         * Get the default cloud driver name.
-         *
-         * @return string 
-         * @static 
-         */
-        public static function getDefaultCloudDriver(){
-            return \Illuminate\Filesystem\FilesystemManager::getDefaultCloudDriver();
-        }
-        
-        /**
-         * Register a custom driver creator Closure.
-         *
-         * @param string $driver
-         * @param \Closure $callback
-         * @return $this 
-         * @static 
-         */
-        public static function extend($driver, $callback){
-            return \Illuminate\Filesystem\FilesystemManager::extend($driver, $callback);
-        }
-        
-        /**
-         * Determine if a file exists.
-         *
-         * @param string $path
-         * @return bool 
-         * @static 
-         */
-        public static function exists($path){
-            return \Illuminate\Filesystem\FilesystemAdapter::exists($path);
-        }
-        
-        /**
-         * Get the contents of a file.
-         *
-         * @param string $path
-         * @return string 
-         * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
-         * @static 
-         */
-        public static function get($path){
-            return \Illuminate\Filesystem\FilesystemAdapter::get($path);
-        }
-        
-        /**
-         * Write the contents of a file.
-         *
-         * @param string $path
-         * @param string|resource $contents
-         * @param string $visibility
-         * @return bool 
-         * @static 
-         */
-        public static function put($path, $contents, $visibility = null){
-            return \Illuminate\Filesystem\FilesystemAdapter::put($path, $contents, $visibility);
-        }
-        
-        /**
-         * Store the uploaded file on the disk.
-         *
-         * @param string $path
-         * @param \Illuminate\Http\UploadedFile $file
-         * @param string $visibility
-         * @return string|false 
-         * @static 
-         */
-        public static function putFile($path, $file, $visibility = null){
-            return \Illuminate\Filesystem\FilesystemAdapter::putFile($path, $file, $visibility);
-        }
-        
-        /**
-         * Store the uploaded file on the disk with a given name.
-         *
-         * @param string $path
-         * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile $file
-         * @param string $name
-         * @param string $visibility
-         * @return string|false 
-         * @static 
-         */
-        public static function putFileAs($path, $file, $name, $visibility = null){
-            return \Illuminate\Filesystem\FilesystemAdapter::putFileAs($path, $file, $name, $visibility);
-        }
-        
-        /**
-         * Get the visibility for the given path.
-         *
-         * @param string $path
-         * @return string 
-         * @static 
-         */
-        public static function getVisibility($path){
-            return \Illuminate\Filesystem\FilesystemAdapter::getVisibility($path);
-        }
-        
-        /**
-         * Set the visibility for the given path.
-         *
-         * @param string $path
-         * @param string $visibility
-         * @return void 
-         * @static 
-         */
-        public static function setVisibility($path, $visibility){
-            \Illuminate\Filesystem\FilesystemAdapter::setVisibility($path, $visibility);
-        }
-        
-        /**
-         * Prepend to a file.
-         *
-         * @param string $path
-         * @param string $data
-         * @param string $separator
-         * @return int 
-         * @static 
-         */
-        public static function prepend($path, $data, $separator = ''){
-            return \Illuminate\Filesystem\FilesystemAdapter::prepend($path, $data, $separator);
-        }
-        
-        /**
-         * Append to a file.
-         *
-         * @param string $path
-         * @param string $data
-         * @param string $separator
-         * @return int 
-         * @static 
-         */
-        public static function append($path, $data, $separator = ''){
-            return \Illuminate\Filesystem\FilesystemAdapter::append($path, $data, $separator);
-        }
-        
-        /**
-         * Delete the file at a given path.
-         *
-         * @param string|array $paths
-         * @return bool 
-         * @static 
-         */
-        public static function delete($paths){
-            return \Illuminate\Filesystem\FilesystemAdapter::delete($paths);
-        }
-        
-        /**
-         * Copy a file to a new location.
-         *
-         * @param string $from
-         * @param string $to
-         * @return bool 
-         * @static 
-         */
-        public static function copy($from, $to){
-            return \Illuminate\Filesystem\FilesystemAdapter::copy($from, $to);
-        }
-        
-        /**
-         * Move a file to a new location.
-         *
-         * @param string $from
-         * @param string $to
-         * @return bool 
-         * @static 
-         */
-        public static function move($from, $to){
-            return \Illuminate\Filesystem\FilesystemAdapter::move($from, $to);
-        }
-        
-        /**
-         * Get the file size of a given file.
-         *
-         * @param string $path
-         * @return int 
-         * @static 
-         */
-        public static function size($path){
-            return \Illuminate\Filesystem\FilesystemAdapter::size($path);
+            \Illuminate\Session\Store::setRequestOnHandler($request);
         }
         
+    }
+
+
+    class Storage extends \Illuminate\Support\Facades\Storage{
+        
         /**
-         * Get the mime-type of a given file.
+         * Get a filesystem instance.
          *
-         * @param string $path
-         * @return string|false 
+         * @param string $name
+         * @return \Illuminate\Contracts\Filesystem\Filesystem 
          * @static 
          */
-        public static function mimeType($path){
-            return \Illuminate\Filesystem\FilesystemAdapter::mimeType($path);
+        public static function drive($name = null){
+            return \Illuminate\Filesystem\FilesystemManager::drive($name);
         }
         
         /**
-         * Get the file's last modification time.
+         * Get a filesystem instance.
          *
-         * @param string $path
-         * @return int 
+         * @param string $name
+         * @return \Illuminate\Contracts\Filesystem\Filesystem 
          * @static 
          */
-        public static function lastModified($path){
-            return \Illuminate\Filesystem\FilesystemAdapter::lastModified($path);
+        public static function disk($name = null){
+            return \Illuminate\Filesystem\FilesystemManager::disk($name);
         }
         
         /**
-         * Get the URL for the file at the given path.
+         * Get a default cloud filesystem instance.
          *
-         * @param string $path
-         * @return string 
+         * @return \Illuminate\Contracts\Filesystem\Filesystem 
          * @static 
          */
-        public static function url($path){
-            return \Illuminate\Filesystem\FilesystemAdapter::url($path);
+        public static function cloud(){
+            return \Illuminate\Filesystem\FilesystemManager::cloud();
         }
         
         /**
-         * Get an array of all files in a directory.
+         * Create an instance of the local driver.
          *
-         * @param string|null $directory
-         * @param bool $recursive
-         * @return array 
+         * @param array $config
+         * @return \Illuminate\Contracts\Filesystem\Filesystem 
          * @static 
          */
-        public static function files($directory = null, $recursive = false){
-            return \Illuminate\Filesystem\FilesystemAdapter::files($directory, $recursive);
+        public static function createLocalDriver($config){
+            return \Illuminate\Filesystem\FilesystemManager::createLocalDriver($config);
         }
         
         /**
-         * Get all of the files from the given directory (recursive).
+         * Create an instance of the ftp driver.
          *
-         * @param string|null $directory
-         * @return array 
+         * @param array $config
+         * @return \Illuminate\Contracts\Filesystem\Filesystem 
          * @static 
          */
-        public static function allFiles($directory = null){
-            return \Illuminate\Filesystem\FilesystemAdapter::allFiles($directory);
+        public static function createFtpDriver($config){
+            return \Illuminate\Filesystem\FilesystemManager::createFtpDriver($config);
         }
         
         /**
-         * Get all of the directories within a given directory.
+         * Create an instance of the Amazon S3 driver.
          *
-         * @param string|null $directory
-         * @param bool $recursive
-         * @return array 
+         * @param array $config
+         * @return \Illuminate\Contracts\Filesystem\Cloud 
          * @static 
          */
-        public static function directories($directory = null, $recursive = false){
-            return \Illuminate\Filesystem\FilesystemAdapter::directories($directory, $recursive);
+        public static function createS3Driver($config){
+            return \Illuminate\Filesystem\FilesystemManager::createS3Driver($config);
         }
         
         /**
-         * Get all (recursive) of the directories within a given directory.
+         * Create an instance of the Rackspace driver.
          *
-         * @param string|null $directory
-         * @return array 
+         * @param array $config
+         * @return \Illuminate\Contracts\Filesystem\Cloud 
          * @static 
          */
-        public static function allDirectories($directory = null){
-            return \Illuminate\Filesystem\FilesystemAdapter::allDirectories($directory);
+        public static function createRackspaceDriver($config){
+            return \Illuminate\Filesystem\FilesystemManager::createRackspaceDriver($config);
         }
         
         /**
-         * Create a directory.
+         * Get the default driver name.
          *
-         * @param string $path
-         * @return bool 
+         * @return string 
          * @static 
          */
-        public static function makeDirectory($path){
-            return \Illuminate\Filesystem\FilesystemAdapter::makeDirectory($path);
+        public static function getDefaultDriver(){
+            return \Illuminate\Filesystem\FilesystemManager::getDefaultDriver();
         }
         
         /**
-         * Recursively delete a directory.
+         * Get the default cloud driver name.
          *
-         * @param string $directory
-         * @return bool 
+         * @return string 
          * @static 
          */
-        public static function deleteDirectory($directory){
-            return \Illuminate\Filesystem\FilesystemAdapter::deleteDirectory($directory);
+        public static function getDefaultCloudDriver(){
+            return \Illuminate\Filesystem\FilesystemManager::getDefaultCloudDriver();
         }
         
         /**
-         * Get the Flysystem driver.
+         * Register a custom driver creator Closure.
          *
-         * @return \League\Flysystem\FilesystemInterface 
+         * @param string $driver
+         * @param \Closure $callback
+         * @return $this 
          * @static 
          */
-        public static function getDriver(){
-            return \Illuminate\Filesystem\FilesystemAdapter::getDriver();
+        public static function extend($driver, $callback){
+            return \Illuminate\Filesystem\FilesystemManager::extend($driver, $callback);
         }
         
     }
@@ -12336,12 +10966,11 @@ namespace {
         /**
          * Get the URL for the previous request.
          *
-         * @param mixed $fallback
          * @return string 
          * @static 
          */
-        public static function previous($fallback = false){
-            return \Illuminate\Routing\UrlGenerator::previous($fallback);
+        public static function previous(){
+            return \Illuminate\Routing\UrlGenerator::previous();
         }
         
         /**
@@ -12370,7 +10999,7 @@ namespace {
         }
         
         /**
-         * Generate the URL to an application asset.
+         * Generate a URL to an application asset.
          *
          * @param string $path
          * @param bool|null $secure
@@ -12382,7 +11011,7 @@ namespace {
         }
         
         /**
-         * Generate the URL to an asset from a custom root domain such as CDN, etc.
+         * Generate a URL to an asset from a custom root domain such as CDN, etc.
          *
          * @param string $root
          * @param string $path
@@ -12395,7 +11024,7 @@ namespace {
         }
         
         /**
-         * Generate the URL to a secure asset.
+         * Generate a URL to a secure asset.
          *
          * @param string $path
          * @return string 
@@ -12563,21 +11192,6 @@ namespace {
         }
         
         /**
-         * Validate the given data against the provided rules.
-         *
-         * @param array $data
-         * @param array $rules
-         * @param array $messages
-         * @param array $customAttributes
-         * @return void 
-         * @throws \Illuminate\Validation\ValidationException
-         * @static 
-         */
-        public static function validate($data, $rules, $messages = array(), $customAttributes = array()){
-            \Illuminate\Validation\Factory::validate($data, $rules, $messages, $customAttributes);
-        }
-        
-        /**
          * Register a custom validator extension.
          *
          * @param string $rule
@@ -12901,41 +11515,6 @@ namespace {
         }
         
         /**
-         * Start injecting content into a push section.
-         *
-         * @param string $section
-         * @param string $content
-         * @return void 
-         * @static 
-         */
-        public static function startPush($section, $content = ''){
-            \Illuminate\View\Factory::startPush($section, $content);
-        }
-        
-        /**
-         * Stop injecting content into a push section.
-         *
-         * @return string 
-         * @throws \InvalidArgumentException
-         * @static 
-         */
-        public static function stopPush(){
-            return \Illuminate\View\Factory::stopPush();
-        }
-        
-        /**
-         * Get the string contents of a push section.
-         *
-         * @param string $section
-         * @param string $default
-         * @return string 
-         * @static 
-         */
-        public static function yieldPushContent($section, $default = ''){
-            return \Illuminate\View\Factory::yieldPushContent($section, $default);
-        }
-        
-        /**
          * Flush all of the section contents.
          *
          * @return void 
@@ -12986,57 +11565,6 @@ namespace {
         }
         
         /**
-         * Add new loop to the stack.
-         *
-         * @param \Countable|array $data
-         * @return void 
-         * @static 
-         */
-        public static function addLoop($data){
-            \Illuminate\View\Factory::addLoop($data);
-        }
-        
-        /**
-         * Increment the top loop's indices.
-         *
-         * @return void 
-         * @static 
-         */
-        public static function incrementLoopIndices(){
-            \Illuminate\View\Factory::incrementLoopIndices();
-        }
-        
-        /**
-         * Pop a loop from the top of the loop stack.
-         *
-         * @return void 
-         * @static 
-         */
-        public static function popLoop(){
-            \Illuminate\View\Factory::popLoop();
-        }
-        
-        /**
-         * Get an instance of the first loop in the stack.
-         *
-         * @return array 
-         * @static 
-         */
-        public static function getFirstLoop(){
-            return \Illuminate\View\Factory::getFirstLoop();
-        }
-        
-        /**
-         * Get the entire loop stack.
-         *
-         * @return array 
-         * @static 
-         */
-        public static function getLoopStack(){
-            return \Illuminate\View\Factory::getLoopStack();
-        }
-        
-        /**
          * Add a location to the array of view locations.
          *
          * @param string $location
@@ -13223,113 +11751,6 @@ namespace {
     }
 
 
-    class Notification extends \Illuminate\Support\Facades\Notification{
-        
-        /**
-         * Send the given notification to the given notifiable entities.
-         *
-         * @param \Illuminate\Support\Collection|array|mixed $notifiables
-         * @param mixed $notification
-         * @return void 
-         * @static 
-         */
-        public static function send($notifiables, $notification){
-            \Illuminate\Notifications\ChannelManager::send($notifiables, $notification);
-        }
-        
-        /**
-         * Send the given notification immediately.
-         *
-         * @param \Illuminate\Support\Collection|array|mixed $notifiables
-         * @param mixed $notification
-         * @return void 
-         * @static 
-         */
-        public static function sendNow($notifiables, $notification){
-            \Illuminate\Notifications\ChannelManager::sendNow($notifiables, $notification);
-        }
-        
-        /**
-         * Get a channel instance.
-         *
-         * @param string|null $name
-         * @return mixed 
-         * @static 
-         */
-        public static function channel($name = null){
-            return \Illuminate\Notifications\ChannelManager::channel($name);
-        }
-        
-        /**
-         * Get the default channel driver name.
-         *
-         * @return string 
-         * @static 
-         */
-        public static function getDefaultDriver(){
-            return \Illuminate\Notifications\ChannelManager::getDefaultDriver();
-        }
-        
-        /**
-         * Get the default channel driver name.
-         *
-         * @return string 
-         * @static 
-         */
-        public static function deliversVia(){
-            return \Illuminate\Notifications\ChannelManager::deliversVia();
-        }
-        
-        /**
-         * Set the default channel driver name.
-         *
-         * @param string $channel
-         * @return void 
-         * @static 
-         */
-        public static function deliverVia($channel){
-            \Illuminate\Notifications\ChannelManager::deliverVia($channel);
-        }
-        
-        /**
-         * Get a driver instance.
-         *
-         * @param string $driver
-         * @return mixed 
-         * @static 
-         */
-        public static function driver($driver = null){
-            //Method inherited from \Illuminate\Support\Manager            
-            return \Illuminate\Notifications\ChannelManager::driver($driver);
-        }
-        
-        /**
-         * Register a custom driver creator Closure.
-         *
-         * @param string $driver
-         * @param \Closure $callback
-         * @return $this 
-         * @static 
-         */
-        public static function extend($driver, $callback){
-            //Method inherited from \Illuminate\Support\Manager            
-            return \Illuminate\Notifications\ChannelManager::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();
-        }
-        
-    }
-
-
     class JsValidator extends \Proengsoft\JsValidation\Facades\JsValidatorFacade{
         
         /**
@@ -13522,12 +11943,11 @@ namespace {
          * @param string $name
          * @param string $value
          * @param array $options
-         * @param bool $escape_html
          * @return \Illuminate\Support\HtmlString 
          * @static 
          */
-        public static function label($name, $value = null, $options = array(), $escape_html = true){
-            return \Collective\Html\FormBuilder::label($name, $value, $options, $escape_html);
+        public static function label($name, $value = null, $options = array()){
+            return \Collective\Html\FormBuilder::label($name, $value, $options);
         }
         
         /**
@@ -14098,12 +12518,11 @@ namespace {
          * @param string $title
          * @param array $attributes
          * @param bool $secure
-         * @param bool $escape
          * @return \Illuminate\Support\HtmlString 
          * @static 
          */
-        public static function link($url, $title = null, $attributes = array(), $secure = null, $escape = true){
-            return \Collective\Html\HtmlBuilder::link($url, $title, $attributes, $secure, $escape);
+        public static function link($url, $title = null, $attributes = array(), $secure = null){
+            return \Collective\Html\HtmlBuilder::link($url, $title, $attributes, $secure);
         }
         
         /**
@@ -14180,12 +12599,11 @@ namespace {
          * @param string $email
          * @param string $title
          * @param array $attributes
-         * @param bool $escape
          * @return \Illuminate\Support\HtmlString 
          * @static 
          */
-        public static function mailto($email, $title = null, $attributes = array(), $escape = true){
-            return \Collective\Html\HtmlBuilder::mailto($email, $title, $attributes, $escape);
+        public static function mailto($email, $title = null, $attributes = array()){
+            return \Collective\Html\HtmlBuilder::mailto($email, $title, $attributes);
         }
         
         /**
@@ -14200,17 +12618,6 @@ namespace {
         }
         
         /**
-         * Generates non-breaking space entities based on number supplied.
-         *
-         * @param int $num
-         * @return string 
-         * @static 
-         */
-        public static function nbsp($num = 1){
-            return \Collective\Html\HtmlBuilder::nbsp($num);
-        }
-        
-        /**
          * Generate an ordered list of items.
          *
          * @param array $list
@@ -15045,7 +13452,7 @@ namespace {
          *
          * @param array $attributes
          * @param array $options
-         * @return bool 
+         * @return bool|int 
          * @static 
          */
         public static function update($attributes = array(), $options = array()){
@@ -15469,15 +13876,16 @@ namespace {
         }
         
         /**
-         * Make the given, typically visible, attributes hidden.
+         * Make the given, typically hidden, attributes visible.
          *
          * @param array|string $attributes
          * @return $this 
+         * @deprecated since version 5.2. Use the "makeVisible" method directly.
          * @static 
          */
-        public static function makeHidden($attributes){
+        public static function withHidden($attributes){
             //Method inherited from \Illuminate\Database\Eloquent\Model            
-            return \Webpatser\Countries\Countries::makeHidden($attributes);
+            return \Webpatser\Countries\Countries::withHidden($attributes);
         }
         
         /**
@@ -15914,18 +14322,6 @@ namespace {
         }
         
         /**
-         * Determine if two models have the same ID and belong to the same table.
-         *
-         * @param \Illuminate\Database\Eloquent\Model $model
-         * @return bool 
-         * @static 
-         */
-        public static function is($model){
-            //Method inherited from \Illuminate\Database\Eloquent\Model            
-            return \Webpatser\Countries\Countries::is($model);
-        }
-        
-        /**
          * Get all of the current attributes on the model.
          *
          * @return array 
@@ -15954,7 +14350,7 @@ namespace {
          *
          * @param string|null $key
          * @param mixed $default
-         * @return mixed|array 
+         * @return array 
          * @static 
          */
         public static function getOriginal($key = null, $default = null){
@@ -15998,18 +14394,6 @@ namespace {
         }
         
         /**
-         * Determine if the model or given attribute(s) have remained the same.
-         *
-         * @param array|string|null $attributes
-         * @return bool 
-         * @static 
-         */
-        public static function isClean($attributes = null){
-            //Method inherited from \Illuminate\Database\Eloquent\Model            
-            return \Webpatser\Countries\Countries::isClean($attributes);
-        }
-        
-        /**
          * Get the attributes that have been changed since last sync.
          *
          * @return array 
@@ -16312,7 +14696,7 @@ namespace {
          * @param \Closure $callback
          * @param integer $lifetime
          * @param boolean $returnObj
-         * @return \Image 
+         * @return \Intervention\Image\Image 
          * @static 
          */
         public static function cache($callback, $lifetime = null, $returnObj = false){
diff --git a/app/Console/Commands/Inspire.php b/app/Console/Commands/Inspire.php
new file mode 100644
index 0000000..1451df3
--- /dev/null
+++ b/app/Console/Commands/Inspire.php
@@ -0,0 +1,33 @@
+<?php
+
+namespace Portal\Console\Commands;
+
+use Illuminate\Console\Command;
+use Illuminate\Foundation\Inspiring;
+
+class Inspire extends Command
+{
+    /**
+     * The name and signature of the console command.
+     *
+     * @var string
+     */
+    protected $signature = 'inspire';
+
+    /**
+     * The console command description.
+     *
+     * @var string
+     */
+    protected $description = 'Display an inspiring quote';
+
+    /**
+     * Execute the console command.
+     *
+     * @return mixed
+     */
+    public function handle()
+    {
+        $this->comment(PHP_EOL.Inspiring::quote().PHP_EOL);
+    }
+}
diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php
index 5aca47f..1c8940b 100644
--- a/app/Console/Kernel.php
+++ b/app/Console/Kernel.php
@@ -13,7 +13,7 @@ class Kernel extends ConsoleKernel
      * @var array
      */
     protected $commands = [
-       //
+        \Portal\Console\Commands\Inspire::class,
     ];
 
     /**
@@ -24,18 +24,7 @@ class Kernel extends ConsoleKernel
      */
     protected function schedule(Schedule $schedule)
     {
-//        $schedule->command('inspire')
-//                 ->hourly();
-    }
-
-
-    /**
-     * Register the Closure based commands for the application.
-     *
-     * @return void
-     */
-    protected function commands()
-    {
-        require base_path('routes/console.php');
+        $schedule->command('inspire')
+                 ->hourly();
     }
 }
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
index 67e5bc4..b6d5393 100644
--- a/app/Exceptions/Handler.php
+++ b/app/Exceptions/Handler.php
@@ -4,14 +4,12 @@ namespace Portal\Exceptions;
 
 use Exception;
 use Illuminate\Auth\Access\AuthorizationException;
-use Illuminate\Auth\AuthenticationException;
 use Illuminate\Database\Eloquent\ModelNotFoundException;
 use Illuminate\Http\Exception\HttpResponseException;
 use Illuminate\Session\TokenMismatchException;
-use Illuminate\Validation\ValidationException;
 use Symfony\Component\HttpKernel\Exception\HttpException;
+use Illuminate\Foundation\Validation\ValidationException;
 use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
-use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 
 class Handler extends ExceptionHandler
 {
@@ -37,7 +35,7 @@ class Handler extends ExceptionHandler
      */
     public function report(Exception $e)
     {
-        parent::report($e);
+        return parent::report($e);
     }
 
     /**
@@ -57,7 +55,7 @@ class Handler extends ExceptionHandler
             $e = new HttpException(403, $e->getMessage());
         } elseif ($e instanceof ValidationException && $e->getResponse()) {
             return $e->getResponse();
-        } elseif ($e instanceof TokenMismatchException) {
+        } elseif ($e instanceof TokenMismatchException){
             return response()->view('errors.token-mismatch', [], 500);
         }
 
@@ -69,20 +67,4 @@ class Handler extends ExceptionHandler
             ? $this->toIlluminateResponse($this->convertExceptionToResponse($e), $e)
             : response()->view('errors.500', [], 500);
     }
-
-    /**
-     * Convert an authentication exception into an unauthenticated response.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @param  \Illuminate\Auth\AuthenticationException  $exception
-     * @return \Illuminate\Http\Response
-     */
-    protected function unauthenticated($request, AuthenticationException $exception)
-    {
-        if ($request->expectsJson()) {
-            return response()->json(['error' => 'Unauthenticated.'], 401);
-        }
-
-        return redirect()->guest('login');
-    }
 }
diff --git a/app/Http/Controllers/ActivityController.php b/app/Http/Controllers/ActivityController.php
index 66affea..c9dc82e 100644
--- a/app/Http/Controllers/ActivityController.php
+++ b/app/Http/Controllers/ActivityController.php
@@ -3,7 +3,6 @@
 namespace Portal\Http\Controllers;
 
 use Portal\Repositories\Activity\ActivityRepository;
-use Portal\Repositories\Activity\EloquentActivity;
 use Portal\User;
 use Illuminate\Http\Request;
 
diff --git a/app/Http/Controllers/Auth/PasswordController.php b/app/Http/Controllers/Auth/PasswordController.php
index 53bfbf9..b2e1e9b 100644
--- a/app/Http/Controllers/Auth/PasswordController.php
+++ b/app/Http/Controllers/Auth/PasswordController.php
@@ -2,15 +2,13 @@
 
 namespace Portal\Http\Controllers\Auth;
 
-use Illuminate\Http\RedirectResponse;
-use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 use Portal\Events\User\RequestedPasswordResetEmail;
 use Portal\Events\User\ResetedPasswordViaEmail;
 use Portal\Http\Controllers\Controller;
 use Portal\Http\Requests\Auth\PasswordRemindRequest;
 use Portal\Http\Requests\Auth\PasswordResetRequest;
-use Portal\Notifications\ResetPassword;
-use Portal\Repositories\User\UserRepository;
+use Portal\Mailers\UserMailer;
+use Portal\User;
 use Password;
 
 class PasswordController extends Controller
@@ -38,16 +36,16 @@ class PasswordController extends Controller
      * Send a reset link to the given user.
      *
      * @param PasswordRemindRequest $request
-     * @param UserRepository $users
+     * @param UserMailer $mailer
      * @return \Illuminate\Http\Response
      */
-    public function sendPasswordReminder(PasswordRemindRequest $request, UserRepository $users)
+    public function sendPasswordReminder(PasswordRemindRequest $request, UserMailer $mailer)
     {
-        $user = $users->findByEmail($request->email);
+        $user = User::where('email', $request->get('email'))->first();
 
         $token = Password::getRepository()->create($user);
 
-        $user->notify(new ResetPassword($token));
+        $mailer->sendPasswordReminder($user, $token);
 
         event(new RequestedPasswordResetEmail($user));
 
@@ -59,7 +57,7 @@ class PasswordController extends Controller
      * Display the password reset view for the given token.
      *
      * @param  string $token
-     * @return \Illuminate\Contracts\View\View
+     * @return \Illuminate\Http\Response
      * @throws NotFoundHttpException
      */
     public function getReset($token = null)
@@ -75,7 +73,7 @@ class PasswordController extends Controller
      * Reset the given user's password.
      *
      * @param PasswordResetRequest $request
-     * @return \Illuminate\Http\Response|RedirectResponse
+     * @return \Illuminate\Http\Response
      */
     public function postReset(PasswordResetRequest $request)
     {
diff --git a/app/Http/Controllers/InstallController.php b/app/Http/Controllers/InstallController.php
index 6205e9d..c2e61dc 100644
--- a/app/Http/Controllers/InstallController.php
+++ b/app/Http/Controllers/InstallController.php
@@ -142,7 +142,6 @@ class InstallController extends Controller
             'PDO MySQL Extension' => extension_loaded('pdo_mysql'),
             'Mbstring Extension'  => extension_loaded('mbstring'),
             'Tokenizer Extension' => extension_loaded('tokenizer'),
-            'XML Extension' => extension_loaded('xml'),
             'GD Extension' => extension_loaded('gd'),
             'Fileinfo Extension' => extension_loaded('fileinfo')
         ];
diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php
index cd9d20c..d5117cf 100644
--- a/app/Http/Controllers/ProfileController.php
+++ b/app/Http/Controllers/ProfileController.php
@@ -47,11 +47,7 @@ class ProfileController extends Controller
         $this->middleware('session.database', ['only' => ['sessions', 'invalidateSession']]);
 
         $this->users = $users;
-
-        $this->middleware(function ($request, $next) {
-            $this->theUser = Auth::user();
-            return $next($request);
-        });
+        $this->theUser = Auth::user();
     }
 
     /**
diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php
index caae686..1e9504c 100644
--- a/app/Http/Controllers/UsersController.php
+++ b/app/Http/Controllers/UsersController.php
@@ -88,7 +88,7 @@ class UsersController extends Controller
      */
     public function create(CountryRepository $countryRepository, RoleRepository $roleRepository)
     {
-        $countries = $this->parseCountries($countryRepository);
+        $countries = $countryRepository->lists();
         $roles = $roleRepository->lists();
         $statuses = UserStatus::lists();
 
@@ -96,18 +96,6 @@ class UsersController extends Controller
     }
 
     /**
-     * Parse countries into an array that also has a blank
-     * item as first element, which will allow users to
-     * leave the country field unpopulated.
-     * @param CountryRepository $countryRepository
-     * @return array
-     */
-    private function parseCountries(CountryRepository $countryRepository)
-    {
-        return [0 => 'Select a Country'] + $countryRepository->lists()->toArray();
-    }
-
-    /**
      * Stores new user into the database.
      *
      * @param CreateUserRequest $request
@@ -144,7 +132,7 @@ class UsersController extends Controller
     public function edit(User $user, CountryRepository $countryRepository, RoleRepository $roleRepository)
     {
         $edit = true;
-        $countries = $this->parseCountries($countryRepository);
+        $countries = $countryRepository->lists();
         $socials = $user->socialNetworks;
         $roles = $roleRepository->lists();
         $statuses = UserStatus::lists();
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
index d1cee55..b53167b 100644
--- a/app/Http/Kernel.php
+++ b/app/Http/Kernel.php
@@ -29,11 +29,9 @@ class Kernel extends HttpKernel
             \Illuminate\Session\Middleware\StartSession::class,
             \Illuminate\View\Middleware\ShareErrorsFromSession::class,
             \Portal\Http\Middleware\VerifyCsrfToken::class,
-            \Illuminate\Routing\Middleware\SubstituteBindings::class,
         ],
         'api' => [
             'throttle:60,1',
-            'bindings'
         ],
     ];
 
@@ -51,8 +49,6 @@ class Kernel extends HttpKernel
         'role' => \Zizaco\Entrust\Middleware\EntrustRole::class,
         'permission' => \Zizaco\Entrust\Middleware\EntrustPermission::class,
         'ability' => \Zizaco\Entrust\Middleware\EntrustAbility::class,
-        'session.database' => \Portal\Http\Middleware\DatabaseSession::class,
-        'can' => \Illuminate\Auth\Middleware\Authorize::class,
-        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
+        'session.database' => \Portal\Http\Middleware\DatabaseSession::class
     ];
 }
diff --git a/app/Http/routes.php b/app/Http/routes.php
new file mode 100644
index 0000000..22203c5
--- /dev/null
+++ b/app/Http/routes.php
@@ -0,0 +1,378 @@
+<?php
+
+/**
+ * Authentication
+ */
+
+Route::get('login', 'Auth\AuthController@getLogin');
+Route::post('login', 'Auth\AuthController@postLogin');
+
+Route::get('logout', [
+    'as' => 'auth.logout',
+    'uses' => 'Auth\AuthController@getLogout'
+]);
+
+// Allow registration routes only if registration is enabled.
+if (settings('reg_enabled')) {
+    Route::get('register', 'Auth\AuthController@getRegister');
+    Route::post('register', 'Auth\AuthController@postRegister');
+    Route::get('register/confirmation/{token}', [
+        'as' => 'register.confirm-email',
+        'uses' => 'Auth\AuthController@confirmEmail'
+    ]);
+}
+
+// Register password reset routes only if it is enabled inside website settings.
+if (settings('forgot_password')) {
+    Route::get('password/remind', 'Auth\PasswordController@forgotPassword');
+    Route::post('password/remind', 'Auth\PasswordController@sendPasswordReminder');
+    Route::get('password/reset/{token}', 'Auth\PasswordController@getReset');
+    Route::post('password/reset', 'Auth\PasswordController@postReset');
+}
+
+/**
+ * Two-Factor Authentication
+ */
+if (settings('2fa.enabled')) {
+    Route::get('auth/two-factor-authentication', [
+        'as' => 'auth.token',
+        'uses' => 'Auth\AuthController@getToken'
+    ]);
+
+    Route::post('auth/two-factor-authentication', [
+        'as' => 'auth.token.validate',
+        'uses' => 'Auth\AuthController@postToken'
+    ]);
+}
+
+/**
+ * Social Login
+ */
+Route::get('auth/{provider}/login', [
+    'as' => 'social.login',
+    'uses' => 'Auth\SocialAuthController@redirectToProvider',
+    'middleware' => 'social.login'
+]);
+
+Route::get('auth/{provider}/callback', 'Auth\SocialAuthController@handleProviderCallback');
+
+Route::get('auth/twitter/email', 'Auth\SocialAuthController@getTwitterEmail');
+Route::post('auth/twitter/email', 'Auth\SocialAuthController@postTwitterEmail');
+
+/**
+ * Other
+ */
+
+Route::get('/', [
+    'as' => 'dashboard',
+    'uses' => 'DashboardController@index'
+]);
+
+/**
+ * User Profile
+ */
+
+Route::get('profile', [
+    'as' => 'profile',
+    'uses' => 'ProfileController@index'
+]);
+
+Route::get('profile/activity', [
+    'as' => 'profile.activity',
+    'uses' => 'ProfileController@activity'
+]);
+
+Route::put('profile/details/update', [
+    'as' => 'profile.update.details',
+    'uses' => 'ProfileController@updateDetails'
+]);
+
+Route::post('profile/avatar/update', [
+    'as' => 'profile.update.avatar',
+    'uses' => 'ProfileController@updateAvatar'
+]);
+
+Route::post('profile/avatar/update/external', [
+    'as' => 'profile.update.avatar-external',
+    'uses' => 'ProfileController@updateAvatarExternal'
+]);
+
+Route::put('profile/login-details/update', [
+    'as' => 'profile.update.login-details',
+    'uses' => 'ProfileController@updateLoginDetails'
+]);
+
+Route::put('profile/social-networks/update', [
+    'as' => 'profile.update.social-networks',
+    'uses' => 'ProfileController@updateSocialNetworks'
+]);
+
+Route::post('profile/two-factor/enable', [
+    'as' => 'profile.two-factor.enable',
+    'uses' => 'ProfileController@enableTwoFactorAuth'
+]);
+
+Route::post('profile/two-factor/disable', [
+    'as' => 'profile.two-factor.disable',
+    'uses' => 'ProfileController@disableTwoFactorAuth'
+]);
+
+Route::get('profile/sessions', [
+    'as' => 'profile.sessions',
+    'uses' => 'ProfileController@sessions'
+]);
+
+Route::delete('profile/sessions/{session}/invalidate', [
+    'as' => 'profile.sessions.invalidate',
+    'uses' => 'ProfileController@invalidateSession'
+]);
+
+/**
+ * User Management
+ */
+Route::get('user', [
+    'as' => 'user.list',
+    'uses' => 'UsersController@index'
+]);
+
+Route::get('user/create', [
+    'as' => 'user.create',
+    'uses' => 'UsersController@create'
+]);
+
+Route::post('user/create', [
+    'as' => 'user.store',
+    'uses' => 'UsersController@store'
+]);
+
+Route::get('user/{user}/show', [
+    'as' => 'user.show',
+    'uses' => 'UsersController@view'
+]);
+
+Route::get('user/{user}/edit', [
+    'as' => 'user.edit',
+    'uses' => 'UsersController@edit'
+]);
+
+Route::put('user/{user}/update/details', [
+    'as' => 'user.update.details',
+    'uses' => 'UsersController@updateDetails'
+]);
+
+Route::put('user/{user}/update/login-details', [
+    'as' => 'user.update.login-details',
+    'uses' => 'UsersController@updateLoginDetails'
+]);
+
+Route::delete('user/{user}/delete', [
+    'as' => 'user.delete',
+    'uses' => 'UsersController@delete'
+]);
+
+Route::post('user/{user}/update/avatar', [
+    'as' => 'user.update.avatar',
+    'uses' => 'UsersController@updateAvatar'
+]);
+
+Route::post('user/{user}/update/avatar/external', [
+    'as' => 'user.update.avatar.external',
+    'uses' => 'UsersController@updateAvatarExternal'
+]);
+
+Route::post('user/{user}/update/social-networks', [
+    'as' => 'user.update.socials',
+    'uses' => 'UsersController@updateSocialNetworks'
+]);
+
+Route::get('user/{user}/sessions', [
+    'as' => 'user.sessions',
+    'uses' => 'UsersController@sessions'
+]);
+
+Route::delete('user/{user}/sessions/{session}/invalidate', [
+    'as' => 'user.sessions.invalidate',
+    'uses' => 'UsersController@invalidateSession'
+]);
+
+Route::post('user/{user}/two-factor/enable', [
+    'as' => 'user.two-factor.enable',
+    'uses' => 'UsersController@enableTwoFactorAuth'
+]);
+
+Route::post('user/{user}/two-factor/disable', [
+    'as' => 'user.two-factor.disable',
+    'uses' => 'UsersController@disableTwoFactorAuth'
+]);
+
+/**
+ * Roles & Permissions
+ */
+
+Route::get('role', [
+    'as' => 'role.index',
+    'uses' => 'RolesController@index'
+]);
+
+Route::get('role/create', [
+    'as' => 'role.create',
+    'uses' => 'RolesController@create'
+]);
+
+Route::post('role/store', [
+    'as' => 'role.store',
+    'uses' => 'RolesController@store'
+]);
+
+Route::get('role/{role}/edit', [
+    'as' => 'role.edit',
+    'uses' => 'RolesController@edit'
+]);
+
+Route::put('role/{role}/update', [
+    'as' => 'role.update',
+    'uses' => 'RolesController@update'
+]);
+
+Route::delete('role/{role}/delete', [
+    'as' => 'role.delete',
+    'uses' => 'RolesController@delete'
+]);
+
+
+Route::post('permission/save', [
+    'as' => 'permission.save',
+    'uses' => 'PermissionsController@saveRolePermissions'
+]);
+
+Route::resource('permission', 'PermissionsController');
+
+/**
+ * Settings
+ */
+
+Route::get('settings', [
+    'as' => 'settings.general',
+    'uses' => 'SettingsController@general',
+    'middleware' => 'permission:settings.general'
+]);
+
+Route::post('settings/general', [
+    'as' => 'settings.general.update',
+    'uses' => 'SettingsController@update',
+    'middleware' => 'permission:settings.general'
+]);
+
+Route::get('settings/auth', [
+    'as' => 'settings.auth',
+    'uses' => 'SettingsController@auth',
+    'middleware' => 'permission:settings.auth'
+]);
+
+Route::post('settings/auth', [
+    'as' => 'settings.auth.update',
+    'uses' => 'SettingsController@update',
+    'middleware' => 'permission:settings.auth'
+]);
+
+// Only allow managing 2FA if AUTHY_KEY is defined inside .env file
+if (env('AUTHY_KEY')) {
+    Route::post('settings/auth/2fa/enable', [
+        'as' => 'settings.auth.2fa.enable',
+        'uses' => 'SettingsController@enableTwoFactor',
+        'middleware' => 'permission:settings.auth'
+    ]);
+
+    Route::post('settings/auth/2fa/disable', [
+        'as' => 'settings.auth.2fa.disable',
+        'uses' => 'SettingsController@disableTwoFactor',
+        'middleware' => 'permission:settings.auth'
+    ]);
+}
+
+Route::post('settings/auth/registration/captcha/enable', [
+    'as' => 'settings.registration.captcha.enable',
+    'uses' => 'SettingsController@enableCaptcha',
+    'middleware' => 'permission:settings.auth'
+]);
+
+Route::post('settings/auth/registration/captcha/disable', [
+    'as' => 'settings.registration.captcha.disable',
+    'uses' => 'SettingsController@disableCaptcha',
+    'middleware' => 'permission:settings.auth'
+]);
+
+Route::get('settings/notifications', [
+    'as' => 'settings.notifications',
+    'uses' => 'SettingsController@notifications',
+    'middleware' => 'permission:settings.notifications'
+]);
+
+Route::post('settings/notifications', [
+    'as' => 'settings.notifications.update',
+    'uses' => 'SettingsController@update',
+    'middleware' => 'permission:settings.notifications'
+]);
+
+/**
+ * Activity Log
+ */
+
+Route::get('activity', [
+    'as' => 'activity.index',
+    'uses' => 'ActivityController@index'
+]);
+
+Route::get('activity/user/{user}/log', [
+    'as' => 'activity.user',
+    'uses' => 'ActivityController@userActivity'
+]);
+
+/**
+ * Installation
+ */
+
+$router->get('install', [
+    'as' => 'install.start',
+    'uses' => 'InstallController@index'
+]);
+
+$router->get('install/requirements', [
+    'as' => 'install.requirements',
+    'uses' => 'InstallController@requirements'
+]);
+
+$router->get('install/permissions', [
+    'as' => 'install.permissions',
+    'uses' => 'InstallController@permissions'
+]);
+
+$router->get('install/database', [
+    'as' => 'install.database',
+    'uses' => 'InstallController@databaseInfo'
+]);
+
+$router->get('install/start-installation', [
+    'as' => 'install.installation',
+    'uses' => 'InstallController@installation'
+]);
+
+$router->post('install/start-installation', [
+    'as' => 'install.installation',
+    'uses' => 'InstallController@installation'
+]);
+
+$router->post('install/install-app', [
+    'as' => 'install.install',
+    'uses' => 'InstallController@install'
+]);
+
+$router->get('install/complete', [
+    'as' => 'install.complete',
+    'uses' => 'InstallController@complete'
+]);
+
+$router->get('install/error', [
+    'as' => 'install.error',
+    'uses' => 'InstallController@error'
+]);
\ No newline at end of file
diff --git a/app/Listeners/UserWasRegisteredListener.php b/app/Listeners/UserWasRegisteredListener.php
index 750ec0e..9a08496 100644
--- a/app/Listeners/UserWasRegisteredListener.php
+++ b/app/Listeners/UserWasRegisteredListener.php
@@ -5,7 +5,6 @@ namespace Portal\Listeners;
 use Portal\Events\User\Registered;
 use Portal\Mailers\NotificationMailer;
 use Portal\Mailers\UserMailer;
-use Portal\Notifications\UserRegistered;
 use Portal\Repositories\User\UserRepository;
 use Illuminate\Queue\InteractsWithQueue;
 use Illuminate\Contracts\Queue\ShouldQueue;
@@ -13,12 +12,17 @@ use Illuminate\Contracts\Queue\ShouldQueue;
 class UserWasRegisteredListener
 {
     /**
+     * @var NotificationMailer
+     */
+    private $mailer;
+    /**
      * @var UserRepository
      */
     private $users;
 
-    public function __construct(UserRepository $users)
+    public function __construct(NotificationMailer $mailer, UserRepository $users)
     {
+        $this->mailer = $mailer;
         $this->users = $users;
     }
 
@@ -30,12 +34,10 @@ class UserWasRegisteredListener
      */
     public function handle(Registered $event)
     {
-        if (! settings('notifications_signup_email')) {
-            return;
-        }
+        if (! settings('notifications_signup_email')) return;
         
         foreach ($this->users->getUsersWithRole('Admin') as $user) {
-            $user->notify(new UserRegistered($event->getRegisteredUser()));
+            $this->mailer->newUserRegistration($user, $event->getRegisteredUser());
         }
     }
 }
diff --git a/app/Mailers/NotificationMailer.php b/app/Mailers/NotificationMailer.php
new file mode 100644
index 0000000..44edceb
--- /dev/null
+++ b/app/Mailers/NotificationMailer.php
@@ -0,0 +1,17 @@
+<?php
+
+namespace Portal\Mailers;
+
+use Portal\User;
+
+class NotificationMailer extends AbstractMailer
+{
+    public function newUserRegistration(User $recipient, User $newUser)
+    {
+        $view = 'emails.notifications.new-registration';
+        $data = ['user' => $recipient, 'newUser' => $newUser];
+        $subject = 'New User Registration';
+
+        $this->sendTo($recipient->email, $subject, $view, $data);
+    }
+}
\ No newline at end of file
diff --git a/app/Mailers/UserMailer.php b/app/Mailers/UserMailer.php
index ff0145a..0d3987f 100644
--- a/app/Mailers/UserMailer.php
+++ b/app/Mailers/UserMailer.php
@@ -2,19 +2,25 @@
 
 namespace Portal\Mailers;
 
-use Portal\Notifications\EmailConfirmation;
-use Portal\Notifications\ResetPassword;
 use Portal\User;
 
 class UserMailer extends AbstractMailer
 {
-    public function sendConfirmationEmail(User $user, $token)
+    public function sendConfirmationEmail($user, $token)
     {
-        $user->notify(new EmailConfirmation($token));
+        $view = 'emails.registration.confirmation';
+        $data = ['token' => $token];
+        $subject = 'Registration Confirmation';
+
+        $this->sendTo($user->email, $subject, $view, $data);
     }
 
     public function sendPasswordReminder(User $user, $token)
     {
-        $user->notify(new ResetPassword($token));
+        $view = 'emails.password.remind';
+        $data = ['user' => $user, 'token' => $token];
+        $subject = 'Password Reset Required';
+
+        $this->sendTo($user->email, $subject, $view, $data);
     }
-}
+}
\ No newline at end of file
diff --git a/app/Notifications/EmailConfirmation.php b/app/Notifications/EmailConfirmation.php
deleted file mode 100644
index e47aee7..0000000
--- a/app/Notifications/EmailConfirmation.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-namespace Portal\Notifications;
-
-use Illuminate\Notifications\Notification;
-use Illuminate\Notifications\Messages\MailMessage;
-
-class EmailConfirmation extends Notification
-{
-    /**
-     * Email confirmation token.
-     *
-     * @var string
-     */
-    public $token;
-
-    /**
-     * Create a notification instance.
-     *
-     * @param  string  $token
-     * @return void
-     */
-    public function __construct($token)
-    {
-        $this->token = $token;
-    }
-
-    /**
-     * Get the notification's channels.
-     *
-     * @param  mixed  $notifiable
-     * @return array|string
-     */
-    public function via($notifiable)
-    {
-        return ['mail'];
-    }
-
-    /**
-     * Build the mail representation of the notification.
-     *
-     * @return \Illuminate\Notifications\Messages\MailMessage
-     */
-    public function toMail()
-    {
-        $subject = sprintf("[%s] %s", settings('app_name'), trans('app.registration_confirmation'));
-
-        return (new MailMessage)
-            ->subject($subject)
-            ->line(trans('app.thank_you_for_registering', ['app' => settings('app_name')]))
-            ->line(trans('app.confirm_email_on_link_below'))
-            ->action(trans('app.confirm_email'), route('register.confirm-email', $this->token));
-    }
-}
diff --git a/app/Notifications/ResetPassword.php b/app/Notifications/ResetPassword.php
deleted file mode 100644
index ba42c7e..0000000
--- a/app/Notifications/ResetPassword.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-namespace Portal\Notifications;
-
-use Illuminate\Notifications\Notification;
-use Illuminate\Notifications\Messages\MailMessage;
-
-class ResetPassword extends Notification
-{
-    /**
-     * The password reset token.
-     *
-     * @var string
-     */
-    public $token;
-
-    /**
-     * Create a notification instance.
-     *
-     * @param  string  $token
-     */
-    public function __construct($token)
-    {
-        $this->token = $token;
-    }
-
-    /**
-     * Get the notification's channels.
-     *
-     * @param  mixed  $notifiable
-     * @return array|string
-     */
-    public function via($notifiable)
-    {
-        return ['mail'];
-    }
-
-    /**
-     * Build the mail representation of the notification.
-     *
-     * @return \Illuminate\Notifications\Messages\MailMessage
-     */
-    public function toMail()
-    {
-        $subject = sprintf("[%s] %s", settings('app_name'), trans('app.reset_password'));
-
-        return (new MailMessage)
-            ->subject($subject)
-            ->line(trans('app.request_for_password_reset_made'))
-            ->action(trans('app.reset_password'), url('password/reset', $this->token))
-            ->line(trans('app.if_you_did_not_requested'));
-    }
-}
diff --git a/app/Notifications/UserRegistered.php b/app/Notifications/UserRegistered.php
deleted file mode 100644
index dd1df68..0000000
--- a/app/Notifications/UserRegistered.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-namespace Portal\Notifications;
-
-use Illuminate\Bus\Queueable;
-use Illuminate\Notifications\Notification;
-use Illuminate\Contracts\Queue\ShouldQueue;
-use Illuminate\Notifications\Messages\MailMessage;
-use Portal\User;
-
-class UserRegistered extends Notification
-{
-    use Queueable;
-
-    /**
-     * @var User
-     */
-    private $registeredUser;
-
-    /**
-     * Create a new notification instance.
-     * @param User $registeredUser
-     */
-    public function __construct(User $registeredUser)
-    {
-        $this->registeredUser = $registeredUser;
-    }
-
-    /**
-     * Get the notification's delivery channels.
-     *
-     * @param  mixed  $notifiable
-     * @return array
-     */
-    public function via($notifiable)
-    {
-        return ['mail'];
-    }
-
-    /**
-     * Get the mail representation of the notification.
-     *
-     * @param  mixed  $notifiable
-     * @return \Illuminate\Notifications\Messages\MailMessage
-     */
-    public function toMail($notifiable)
-    {
-        $subject = sprintf("[%s] %s", settings('app_name'), trans('app.new_user_registration'));
-
-        return (new MailMessage)
-            ->subject($subject)
-            ->line(trans('app.new_user_was_registered_on', ['app' => settings('app_name')]))
-            ->line(trans('app.to_view_details_visit_link_below'))
-            ->action(trans('app.view_user'), route('user.show', $this->registeredUser->id))
-            ->line(trans('app.thank_you_for_using_our_app'));
-    }
-
-    /**
-     * Get the array representation of the notification.
-     *
-     * @param  mixed  $notifiable
-     * @return array
-     */
-    public function toArray($notifiable)
-    {
-        return [
-            //
-        ];
-    }
-}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index b755d1b..de89c64 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -27,7 +27,6 @@ class AppServiceProvider extends ServiceProvider
     public function boot()
     {
         Carbon::setLocale(config('app.locale'));
-        config(['app.name' => settings('app_name')]);
     }
 
     /**
diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php
index 0ebbd8a..ac9cdc0 100644
--- a/app/Providers/AuthServiceProvider.php
+++ b/app/Providers/AuthServiceProvider.php
@@ -19,10 +19,13 @@ class AuthServiceProvider extends ServiceProvider
     /**
      * Register any application authentication / authorization services.
      *
+     * @param  \Illuminate\Contracts\Auth\Access\Gate  $gate
      * @return void
      */
-    public function boot()
+    public function boot(GateContract $gate)
     {
+        parent::registerPolicies($gate);
+
         //
     }
 }
diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php
deleted file mode 100644
index d0fa624..0000000
--- a/app/Providers/BroadcastServiceProvider.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace Portal\Providers;
-
-use Illuminate\Support\ServiceProvider;
-use Illuminate\Support\Facades\Broadcast;
-
-class BroadcastServiceProvider extends ServiceProvider
-{
-    /**
-     * Bootstrap any application services.
-     *
-     * @return void
-     */
-    public function boot()
-    {
-        Broadcast::routes();
-
-        /*
-         * Authenticate the user's personal channel...
-         */
-        Broadcast::channel('Portal.User.*', function ($user, $userId) {
-            return (int) $user->id === (int) $userId;
-        });
-    }
-
-    /**
-     * Register the service provider.
-     *
-     * @return void
-     */
-    public function register()
-    {
-        //
-    }
-}
diff --git a/app/Providers/EntrustServiceProvider.php b/app/Providers/EntrustServiceProvider.php
deleted file mode 100644
index b696af4..0000000
--- a/app/Providers/EntrustServiceProvider.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-namespace Portal\Providers;
-
-use Zizaco\Entrust\EntrustServiceProvider as BaseEntrustServiceProvider;
-
-class EntrustServiceProvider extends BaseEntrustServiceProvider
-{
-    /**
-     * Bootstrap the application events.
-     *
-     * @return void
-     */
-    public function boot()
-    {
-        // Publish config files
-        $this->publishes([
-            __DIR__.'/../../vendor/zizaco/entrust/src/config/config.php' => config_path('entrust.php'),
-        ]);
-
-        // Register commands
-        $this->commands('command.entrust.migration');
-
-        // Register blade directives
-        $this->bladeDirectives();
-    }
-
-    /**
-     * Register the blade directives
-     *
-     * @return void
-     */
-    private function bladeDirectives()
-    {
-        // Call to Entrust::hasRole
-        \Blade::directive('role', function($expression) {
-            return "<?php if (\\Entrust::hasRole({$expression})) : ?>";
-        });
-
-        \Blade::directive('endrole', function($expression) {
-            return "<?php endif; // Entrust::hasRole ?>";
-        });
-
-        // Call to Entrust::can
-        \Blade::directive('permission', function($expression) {
-            return "<?php if (\\Entrust::can({$expression})) : ?>";
-        });
-
-        \Blade::directive('endpermission', function($expression) {
-            return "<?php endif; // Entrust::can ?>";
-        });
-
-        // Call to Entrust::ability
-        \Blade::directive('ability', function($expression) {
-            return "<?php if (\\Entrust::ability({$expression})) : ?>";
-        });
-
-        \Blade::directive('endability', function($expression) {
-            return "<?php endif; // Entrust::ability ?>";
-        });
-    }
-}
diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php
index 6fc7052..a881423 100644
--- a/app/Providers/EventServiceProvider.php
+++ b/app/Providers/EventServiceProvider.php
@@ -7,6 +7,7 @@ use Portal\Listeners\PermissionEventsSubscriber;
 use Portal\Listeners\RoleEventsSubscriber;
 use Portal\Listeners\UserEventsSubscriber;
 use Portal\Listeners\UserWasRegisteredListener;
+use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
 use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
 
 class EventServiceProvider extends ServiceProvider
@@ -34,11 +35,12 @@ class EventServiceProvider extends ServiceProvider
     /**
      * Register any other events for your application.
      *
+     * @param  \Illuminate\Contracts\Events\Dispatcher  $events
      * @return void
      */
-    public function boot()
+    public function boot(DispatcherContract $events)
     {
-        parent::boot();
+        parent::boot($events);
 
         //
     }
diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php
index ad8eb7d..15664e2 100644
--- a/app/Providers/RouteServiceProvider.php
+++ b/app/Providers/RouteServiceProvider.php
@@ -2,10 +2,10 @@
 
 namespace Portal\Providers;
 
-use Route;
 use Portal\Permission;
 use Portal\Repositories\Role\RoleRepository;
 use Portal\Repositories\User\UserRepository;
+use Portal\Role;
 use Illuminate\Routing\Router;
 use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
@@ -24,26 +24,27 @@ class RouteServiceProvider extends ServiceProvider
     /**
      * Define your route model bindings, pattern filters, etc.
      *
+     * @param  \Illuminate\Routing\Router  $router
      * @return void
      */
-    public function boot()
+    public function boot(Router $router)
     {
-        parent::boot();
+        parent::boot($router);
 
-        $this->bindUser();
-        $this->bindRole();
+        $this->bindUser($router);
+        $this->bindRole($router);
+        $this->bindPermission($router);
     }
 
     /**
      * Define the routes for the application.
      *
+     * @param  \Illuminate\Routing\Router  $router
      * @return void
      */
-    public function map()
+    public function map(Router $router)
     {
-        $this->mapApiRoutes();
-
-        $this->mapWebRoutes();
+        $this->mapWebRoutes($router);
     }
 
     /**
@@ -51,50 +52,40 @@ class RouteServiceProvider extends ServiceProvider
      *
      * These routes all receive session state, CSRF protection, etc.
      *
+     * @param  \Illuminate\Routing\Router  $router
      * @return void
      */
-    protected function mapWebRoutes()
+    protected function mapWebRoutes(Router $router)
     {
-        Route::group([
-            'namespace' => $this->namespace,
-            'middleware' => 'web',
+        $router->group([
+            'namespace' => $this->namespace, 'middleware' => 'web',
         ], function ($router) {
-            require base_path('routes/web.php');
+            require app_path('Http/routes.php');
         });
     }
 
     /**
-     * Define the "api" routes for the application.
-     *
-     * These routes are typically stateless.
-     *
-     * @return void
+     * @param Router $router
      */
-    protected function mapApiRoutes()
+    private function bindUser(Router $router)
     {
-        Route::group([
-            'middleware' => 'api',
-            'namespace' => $this->namespace,
-            'prefix' => 'api',
-        ], function () {
-            require base_path('routes/api.php');
-        });
+        $this->bindUsingRepository($router, 'user', UserRepository::class);
     }
 
-    private function bindUser()
+    private function bindRole(Router $router)
     {
-        $this->bindUsingRepository('user', UserRepository::class);
+        $this->bindUsingRepository($router, 'role', RoleRepository::class);
     }
 
-    private function bindRole()
+    private function bindPermission($router)
     {
-        $this->bindUsingRepository('role', RoleRepository::class);
+        $router->model('permission', Permission::class);
     }
 
-    private function bindUsingRepository($entity, $repository, $method = 'find')
+    private function bindUsingRepository($router, $entity, $repositoryClass, $method = 'find')
     {
-        Route::bind($entity, function ($id) use ($repository, $method) {
-            if ($object = app($repository)->$method($id)) {
+        $router->bind($entity, function ($id) use($repositoryClass, $method) {
+            if ($object = app($repositoryClass)->$method($id)) {
                 return $object;
             }
 
diff --git a/app/Repositories/Activity/EloquentActivity.php b/app/Repositories/Activity/EloquentActivity.php
index 165edbc..789374d 100644
--- a/app/Repositories/Activity/EloquentActivity.php
+++ b/app/Repositories/Activity/EloquentActivity.php
@@ -42,7 +42,7 @@ class EloquentActivity implements ActivityRepository
      */
     public function paginateActivities($perPage = 20, $search = null)
     {
-        $query = Activity::with('user');
+        $query = Activity::query();
 
         return $this->paginateAndFilterResults($perPage, $search, $query);
     }
@@ -82,9 +82,9 @@ class EloquentActivity implements ActivityRepository
             ->whereBetween('created_at', [$from, $to])
             ->groupBy('day')
             ->orderBy('day', 'ASC')
-            ->pluck('count', 'day');
+            ->lists('count', 'day');
 
-        while (! $from->isSameDay($to)) {
+        while(! $from->isSameDay($to)) {
             if (! $result->has($from->toDateString())) {
                 $result->put($from->toDateString(), 0);
             }
diff --git a/app/Repositories/Country/EloquentCountry.php b/app/Repositories/Country/EloquentCountry.php
index 0577a13..04353e0 100644
--- a/app/Repositories/Country/EloquentCountry.php
+++ b/app/Repositories/Country/EloquentCountry.php
@@ -11,6 +11,6 @@ class EloquentCountry implements CountryRepository
      */
     public function lists($column = 'name', $key = 'id')
     {
-        return Country::orderBy('name')->pluck($column, $key);
+        return Country::orderBy('name')->lists($column, $key);
     }
-}
+}
\ No newline at end of file
diff --git a/app/Repositories/Permission/EloquentPermission.php b/app/Repositories/Permission/EloquentPermission.php
index d8f9a90..a7b9302 100644
--- a/app/Repositories/Permission/EloquentPermission.php
+++ b/app/Repositories/Permission/EloquentPermission.php
@@ -69,4 +69,4 @@ class EloquentPermission implements PermissionRepository
 
         return $status;
     }
-}
+}
\ No newline at end of file
diff --git a/app/Repositories/Role/EloquentRole.php b/app/Repositories/Role/EloquentRole.php
index 80c9dbb..64a8b2b 100644
--- a/app/Repositories/Role/EloquentRole.php
+++ b/app/Repositories/Role/EloquentRole.php
@@ -97,7 +97,7 @@ class EloquentRole implements RoleRepository
      */
     public function lists($column = 'name', $key = 'id')
     {
-        return Role::pluck($column, $key);
+        return Role::lists($column, $key);
     }
 
     /**
diff --git a/app/Repositories/Session/DbSession.php b/app/Repositories/Session/DbSession.php
index be1a74d..7dc9a6c 100644
--- a/app/Repositories/Session/DbSession.php
+++ b/app/Repositories/Session/DbSession.php
@@ -28,8 +28,7 @@ class DbSession implements SessionRepository
     {
         return DB::table('sessions')
             ->where('user_id', $userId)
-            ->get(['id', 'ip_address', 'user_agent', 'last_activity'])
-            ->all();
+            ->get(['id', 'ip_address', 'user_agent', 'last_activity']);
     }
 
     /**
diff --git a/app/Repositories/User/EloquentUser.php b/app/Repositories/User/EloquentUser.php
index 4372f25..229f8f4 100644
--- a/app/Repositories/User/EloquentUser.php
+++ b/app/Repositories/User/EloquentUser.php
@@ -98,8 +98,7 @@ class EloquentUser implements UserRepository
             });
         }
 
-        $result = $query->orderBy('created_at', 'desc')
-            ->paginate($perPage);
+        $result = $query->paginate($perPage);
 
         if ($search) {
             $result->appends(['search' => $search]);
@@ -113,10 +112,6 @@ class EloquentUser implements UserRepository
      */
     public function update($id, array $data)
     {
-        if (array_get($data, 'country_id') == 0) {
-            $data['country_id'] = null;
-        }
-
         return $this->find($id)->update($data);
     }
 
@@ -189,7 +184,7 @@ class EloquentUser implements UserRepository
             ->whereBetween('created_at', [$from, $to])
             ->groupBy('month')
             ->orderBy('month', 'ASC')
-            ->pluck('count', 'month');
+            ->lists('count', 'month');
 
         $counts = [];
 
@@ -238,9 +233,11 @@ class EloquentUser implements UserRepository
      */
     public function getUserSocialLogins($userId)
     {
-        return DB::table('social_logins')
+        $result = DB::table('social_logins')
             ->where('user_id', $userId)
             ->get();
+
+        return collect($result);
     }
 
     /**
@@ -270,4 +267,4 @@ class EloquentUser implements UserRepository
             ->where('role_id', $fromRoleId)
             ->update(['role_id' => $toRoleId]);
     }
-}
+}
\ No newline at end of file
diff --git a/app/User.php b/app/User.php
index 119b963..c2f050a 100644
--- a/app/User.php
+++ b/app/User.php
@@ -2,21 +2,26 @@
 
 namespace Portal;
 
-use Illuminate\Notifications\Messages\MailMessage;
-use Illuminate\Notifications\Notifiable;
 use Portal\Presenters\UserPresenter;
 use Portal\Services\Auth\TwoFactor\Authenticatable as TwoFactorAuthenticatable;
 use Portal\Services\Auth\TwoFactor\Contracts\Authenticatable as TwoFactorAuthenticatableContract;
 use Portal\Services\Logging\UserActivity\Activity;
 use Portal\Support\Authorization\AuthorizationUserTrait;
 use Portal\Support\Enum\UserStatus;
+use Illuminate\Database\Eloquent\Model;
 use Illuminate\Auth\Passwords\CanResetPassword;
+use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
+use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
+use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
 use Laracasts\Presenter\PresentableTrait;
-use Illuminate\Foundation\Auth\User as Authenticatable;
+use Zizaco\Entrust\Traits\EntrustUserTrait;
 
-class User extends Authenticatable implements TwoFactorAuthenticatableContract
+class User extends Model implements AuthenticatableContract,
+                                    AuthorizableContract,
+                                    CanResetPasswordContract,
+                                    TwoFactorAuthenticatableContract
 {
-    use TwoFactorAuthenticatable, CanResetPassword, PresentableTrait, AuthorizationUserTrait, Notifiable;
+    use TwoFactorAuthenticatable, CanResetPassword, PresentableTrait, AuthorizationUserTrait;
 
     protected $presenter = UserPresenter::class;
 
diff --git a/composer.json b/composer.json
index 56883ee..e4b9420 100644
--- a/composer.json
+++ b/composer.json
@@ -4,8 +4,8 @@
     "keywords": ["advanced", "secure", "login", "user management", "authentication", "authorization", "register"],
     "type": "project",
     "require": {
-        "php": ">=5.6.4",
-        "laravel/framework": "5.3.*",
+        "php": ">=5.5.9",
+        "laravel/framework": "5.2.*@dev",
         "proengsoft/laravel-jsvalidation": "~1.1",
         "laravel/socialite": "^2.0",
         "laracasts/presenter": "^0.2.1",
@@ -23,8 +23,8 @@
         "mockery/mockery": "0.9.*",
         "phpunit/phpunit": "~4.0",
         "phpspec/phpspec": "~2.1",
-        "barryvdh/laravel-ide-helper": "2.2.*",
-        "barryvdh/laravel-debugbar": "2.2.*"
+        "barryvdh/laravel-ide-helper": "2.1.2",
+        "barryvdh/laravel-debugbar": "2.1.3"
     },
     "autoload": {
         "classmap": [
@@ -54,6 +54,7 @@
             "php artisan clear-compiled"
         ],
         "post-update-cmd": [
+            "php artisan ide-helper:generate",
             "php artisan optimize"
         ],
         "post-root-package-install": [
diff --git a/composer.lock b/composer.lock
index dc77a3d..385c4b2 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,25 +4,25 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "c9e5b5819a5594df2f942814fbfb8884",
-    "content-hash": "8774a5d96e28f0e8e4ef9f5da9b71b18",
+    "hash": "742448f626c3f94443aabd53d680b94e",
+    "content-hash": "a89adf53d4022ea6d462efcb90727268",
     "packages": [
         {
             "name": "anhskohbo/no-captcha",
-            "version": "2.1.2",
+            "version": "2.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/anhskohbo/no-captcha.git",
-                "reference": "07fd1583feae651c4db3652719f2d46fa23c4fd4"
+                "reference": "cdf18fea985e6176c9663619a39d0de78b007deb"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/anhskohbo/no-captcha/zipball/07fd1583feae651c4db3652719f2d46fa23c4fd4",
-                "reference": "07fd1583feae651c4db3652719f2d46fa23c4fd4",
+                "url": "https://api.github.com/repos/anhskohbo/no-captcha/zipball/cdf18fea985e6176c9663619a39d0de78b007deb",
+                "reference": "cdf18fea985e6176c9663619a39d0de78b007deb",
                 "shasum": ""
             },
             "require": {
-                "illuminate/support": "5.0.*|5.1.*|5.2.*|5.3.*",
+                "illuminate/support": "5.0.*|5.1.*|5.2.*",
                 "php": ">=5.4.0"
             },
             "type": "library",
@@ -50,20 +50,20 @@
                 "no-captcha",
                 "recaptcha"
             ],
-            "time": "2016-08-24 16:35:03"
+            "time": "2015-12-27 16:44:09"
         },
         {
             "name": "anlutro/l4-settings",
-            "version": "0.4.9",
+            "version": "0.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/anlutro/laravel-settings.git",
-                "reference": "7c7091529cc8e307dd4cf3c66b1d5bdb6bc4444e"
+                "reference": "3c389dcef5e1d2dd8830c1254a70b56f430d3ea0"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/anlutro/laravel-settings/zipball/7c7091529cc8e307dd4cf3c66b1d5bdb6bc4444e",
-                "reference": "7c7091529cc8e307dd4cf3c66b1d5bdb6bc4444e",
+                "url": "https://api.github.com/repos/anlutro/laravel-settings/zipball/3c389dcef5e1d2dd8830c1254a70b56f430d3ea0",
+                "reference": "3c389dcef5e1d2dd8830c1254a70b56f430d3ea0",
                 "shasum": ""
             },
             "require": {
@@ -96,7 +96,7 @@
                 }
             ],
             "description": "Persistent settings in Laravel.",
-            "time": "2016-08-24 14:06:54"
+            "time": "2016-02-28 18:37:50"
         },
         {
             "name": "classpreloader/classpreloader",
@@ -253,33 +253,125 @@
             "time": "2015-11-06 14:35:42"
         },
         {
+            "name": "guzzle/guzzle",
+            "version": "v3.8.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/guzzle/guzzle.git",
+                "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/4de0618a01b34aa1c8c33a3f13f396dcd3882eba",
+                "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba",
+                "shasum": ""
+            },
+            "require": {
+                "ext-curl": "*",
+                "php": ">=5.3.3",
+                "symfony/event-dispatcher": ">=2.1"
+            },
+            "replace": {
+                "guzzle/batch": "self.version",
+                "guzzle/cache": "self.version",
+                "guzzle/common": "self.version",
+                "guzzle/http": "self.version",
+                "guzzle/inflection": "self.version",
+                "guzzle/iterator": "self.version",
+                "guzzle/log": "self.version",
+                "guzzle/parser": "self.version",
+                "guzzle/plugin": "self.version",
+                "guzzle/plugin-async": "self.version",
+                "guzzle/plugin-backoff": "self.version",
+                "guzzle/plugin-cache": "self.version",
+                "guzzle/plugin-cookie": "self.version",
+                "guzzle/plugin-curlauth": "self.version",
+                "guzzle/plugin-error-response": "self.version",
+                "guzzle/plugin-history": "self.version",
+                "guzzle/plugin-log": "self.version",
+                "guzzle/plugin-md5": "self.version",
+                "guzzle/plugin-mock": "self.version",
+                "guzzle/plugin-oauth": "self.version",
+                "guzzle/service": "self.version",
+                "guzzle/stream": "self.version"
+            },
+            "require-dev": {
+                "doctrine/cache": "*",
+                "monolog/monolog": "1.*",
+                "phpunit/phpunit": "3.7.*",
+                "psr/log": "1.0.*",
+                "symfony/class-loader": "*",
+                "zendframework/zend-cache": "<2.3",
+                "zendframework/zend-log": "<2.3"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.8-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Guzzle": "src/",
+                    "Guzzle\\Tests": "tests/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Michael Dowling",
+                    "email": "mtdowling@gmail.com",
+                    "homepage": "https://github.com/mtdowling"
+                },
+                {
+                    "name": "Guzzle Community",
+                    "homepage": "https://github.com/guzzle/guzzle/contributors"
+                }
+            ],
+            "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients",
+            "homepage": "http://guzzlephp.org/",
+            "keywords": [
+                "client",
+                "curl",
+                "framework",
+                "http",
+                "http client",
+                "rest",
+                "web service"
+            ],
+            "time": "2014-01-28 22:29:15"
+        },
+        {
             "name": "guzzlehttp/guzzle",
-            "version": "6.2.1",
+            "version": "6.1.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/guzzle/guzzle.git",
-                "reference": "3f808fba627f2c5b69e2501217bf31af349c1427"
+                "reference": "c6851d6e48f63b69357cbfa55bca116448140e0c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/3f808fba627f2c5b69e2501217bf31af349c1427",
-                "reference": "3f808fba627f2c5b69e2501217bf31af349c1427",
+                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/c6851d6e48f63b69357cbfa55bca116448140e0c",
+                "reference": "c6851d6e48f63b69357cbfa55bca116448140e0c",
                 "shasum": ""
             },
             "require": {
-                "guzzlehttp/promises": "^1.0",
-                "guzzlehttp/psr7": "^1.3.1",
-                "php": ">=5.5"
+                "guzzlehttp/promises": "~1.0",
+                "guzzlehttp/psr7": "~1.1",
+                "php": ">=5.5.0"
             },
             "require-dev": {
                 "ext-curl": "*",
-                "phpunit/phpunit": "^4.0",
-                "psr/log": "^1.0"
+                "phpunit/phpunit": "~4.0",
+                "psr/log": "~1.0"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "6.2-dev"
+                    "dev-master": "6.1-dev"
                 }
             },
             "autoload": {
@@ -312,20 +404,20 @@
                 "rest",
                 "web service"
             ],
-            "time": "2016-07-15 17:22:37"
+            "time": "2015-11-23 00:47:50"
         },
         {
             "name": "guzzlehttp/promises",
-            "version": "1.2.0",
+            "version": "1.1.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/guzzle/promises.git",
-                "reference": "c10d860e2a9595f8883527fa0021c7da9e65f579"
+                "reference": "bb9024c526b22f3fe6ae55a561fd70653d470aa8"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/promises/zipball/c10d860e2a9595f8883527fa0021c7da9e65f579",
-                "reference": "c10d860e2a9595f8883527fa0021c7da9e65f579",
+                "url": "https://api.github.com/repos/guzzle/promises/zipball/bb9024c526b22f3fe6ae55a561fd70653d470aa8",
+                "reference": "bb9024c526b22f3fe6ae55a561fd70653d470aa8",
                 "shasum": ""
             },
             "require": {
@@ -363,20 +455,20 @@
             "keywords": [
                 "promise"
             ],
-            "time": "2016-05-18 16:56:05"
+            "time": "2016-03-08 01:15:46"
         },
         {
             "name": "guzzlehttp/psr7",
-            "version": "1.3.1",
+            "version": "1.2.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/guzzle/psr7.git",
-                "reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b"
+                "reference": "2e89629ff057ebb49492ba08e6995d3a6a80021b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/psr7/zipball/5c6447c9df362e8f8093bda8f5d8873fe5c7f65b",
-                "reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b",
+                "url": "https://api.github.com/repos/guzzle/psr7/zipball/2e89629ff057ebb49492ba08e6995d3a6a80021b",
+                "reference": "2e89629ff057ebb49492ba08e6995d3a6a80021b",
                 "shasum": ""
             },
             "require": {
@@ -392,7 +484,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.4-dev"
+                    "dev-master": "1.0-dev"
                 }
             },
             "autoload": {
@@ -421,20 +513,20 @@
                 "stream",
                 "uri"
             ],
-            "time": "2016-06-24 23:00:38"
+            "time": "2016-02-18 21:54:00"
         },
         {
             "name": "intervention/image",
-            "version": "2.3.8",
+            "version": "2.3.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Intervention/image.git",
-                "reference": "4064a980324f6c3bfa2bd981dfb247afa705ec3c"
+                "reference": "e368d262887dbb2fdfaf710880571ede51e9c0e6"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Intervention/image/zipball/4064a980324f6c3bfa2bd981dfb247afa705ec3c",
-                "reference": "4064a980324f6c3bfa2bd981dfb247afa705ec3c",
+                "url": "https://api.github.com/repos/Intervention/image/zipball/e368d262887dbb2fdfaf710880571ede51e9c0e6",
+                "reference": "e368d262887dbb2fdfaf710880571ede51e9c0e6",
                 "shasum": ""
             },
             "require": {
@@ -483,7 +575,7 @@
                 "thumbnail",
                 "watermark"
             ],
-            "time": "2016-09-01 17:04:03"
+            "time": "2016-02-26 18:18:19"
         },
         {
             "name": "jakub-onderka/php-console-color",
@@ -678,16 +770,16 @@
         },
         {
             "name": "laravel/framework",
-            "version": "v5.3.9",
+            "version": "5.2.x-dev",
             "source": {
                 "type": "git",
                 "url": "https://github.com/laravel/framework.git",
-                "reference": "f6fbb481672f8dc4bc6882d5d654bbfa3588c8ec"
+                "reference": "87c090845f135ca94eba903f1c8462e60e3a6e36"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/laravel/framework/zipball/f6fbb481672f8dc4bc6882d5d654bbfa3588c8ec",
-                "reference": "f6fbb481672f8dc4bc6882d5d654bbfa3588c8ec",
+                "url": "https://api.github.com/repos/laravel/framework/zipball/87c090845f135ca94eba903f1c8462e60e3a6e36",
+                "reference": "87c090845f135ca94eba903f1c8462e60e3a6e36",
                 "shasum": ""
             },
             "require": {
@@ -700,20 +792,20 @@
                 "monolog/monolog": "~1.11",
                 "mtdowling/cron-expression": "~1.0",
                 "nesbot/carbon": "~1.20",
-                "paragonie/random_compat": "~1.4|~2.0",
-                "php": ">=5.6.4",
+                "paragonie/random_compat": "~1.1",
+                "php": ">=5.5.9",
                 "psy/psysh": "0.7.*",
-                "ramsey/uuid": "~3.0",
                 "swiftmailer/swiftmailer": "~5.1",
-                "symfony/console": "3.1.*",
-                "symfony/debug": "3.1.*",
-                "symfony/finder": "3.1.*",
-                "symfony/http-foundation": "3.1.*",
-                "symfony/http-kernel": "3.1.*",
-                "symfony/process": "3.1.*",
-                "symfony/routing": "3.1.*",
-                "symfony/translation": "3.1.*",
-                "symfony/var-dumper": "3.1.*",
+                "symfony/console": "2.8.*|3.0.*",
+                "symfony/debug": "2.8.*|3.0.*",
+                "symfony/finder": "2.8.*|3.0.*",
+                "symfony/http-foundation": "2.8.*|3.0.*",
+                "symfony/http-kernel": "2.8.*|3.0.*",
+                "symfony/polyfill-php56": "~1.0",
+                "symfony/process": "2.8.*|3.0.*",
+                "symfony/routing": "2.8.*|3.0.*",
+                "symfony/translation": "2.8.*|3.0.*",
+                "symfony/var-dumper": "2.8.*|3.0.*",
                 "vlucas/phpdotenv": "~2.2"
             },
             "replace": {
@@ -744,17 +836,16 @@
                 "illuminate/support": "self.version",
                 "illuminate/translation": "self.version",
                 "illuminate/validation": "self.version",
-                "illuminate/view": "self.version",
-                "tightenco/collect": "self.version"
+                "illuminate/view": "self.version"
             },
             "require-dev": {
                 "aws/aws-sdk-php": "~3.0",
-                "mockery/mockery": "~0.9.4",
+                "mockery/mockery": "~0.9.2",
                 "pda/pheanstalk": "~3.0",
-                "phpunit/phpunit": "~5.4",
+                "phpunit/phpunit": "~4.1",
                 "predis/predis": "~1.0",
-                "symfony/css-selector": "3.1.*",
-                "symfony/dom-crawler": "3.1.*"
+                "symfony/css-selector": "2.8.*|3.0.*",
+                "symfony/dom-crawler": "2.8.*|3.0.*"
             },
             "suggest": {
                 "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).",
@@ -766,17 +857,19 @@
                 "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).",
                 "predis/predis": "Required to use the redis cache and queue drivers (~1.0).",
                 "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~2.0).",
-                "symfony/css-selector": "Required to use some of the crawler integration testing tools (3.1.*).",
-                "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (3.1.*).",
-                "symfony/psr-http-message-bridge": "Required to psr7 bridging features (0.2.*)."
+                "symfony/css-selector": "Required to use some of the crawler integration testing tools (2.8.*|3.0.*).",
+                "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (2.8.*|3.0.*)."
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "5.3-dev"
+                    "dev-master": "5.2-dev"
                 }
             },
             "autoload": {
+                "classmap": [
+                    "src/Illuminate/Queue/IlluminateQueueClosure.php"
+                ],
                 "files": [
                     "src/Illuminate/Foundation/helpers.php",
                     "src/Illuminate/Support/helpers.php"
@@ -792,29 +885,29 @@
             "authors": [
                 {
                     "name": "Taylor Otwell",
-                    "email": "taylor@laravel.com"
+                    "email": "taylorotwell@gmail.com"
                 }
             ],
             "description": "The Laravel Framework.",
-            "homepage": "https://laravel.com",
+            "homepage": "http://laravel.com",
             "keywords": [
                 "framework",
                 "laravel"
             ],
-            "time": "2016-09-12 14:08:29"
+            "time": "2016-03-14 14:22:33"
         },
         {
             "name": "laravel/socialite",
-            "version": "v2.0.18",
+            "version": "v2.0.14",
             "source": {
                 "type": "git",
                 "url": "https://github.com/laravel/socialite.git",
-                "reference": "76ee5397fcdea5a062361392abca4eb397e519a3"
+                "reference": "b15f4be0ac739405120d74b837af423aa71502d9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/laravel/socialite/zipball/76ee5397fcdea5a062361392abca4eb397e519a3",
-                "reference": "76ee5397fcdea5a062361392abca4eb397e519a3",
+                "url": "https://api.github.com/repos/laravel/socialite/zipball/b15f4be0ac739405120d74b837af423aa71502d9",
+                "reference": "b15f4be0ac739405120d74b837af423aa71502d9",
                 "shasum": ""
             },
             "require": {
@@ -827,7 +920,7 @@
             },
             "require-dev": {
                 "mockery/mockery": "~0.9",
-                "phpunit/phpunit": "~4.0|~5.0"
+                "phpunit/phpunit": "~4.0"
             },
             "type": "library",
             "extra": {
@@ -855,34 +948,34 @@
                 "laravel",
                 "oauth"
             ],
-            "time": "2016-06-22 12:40:16"
+            "time": "2015-10-16 15:39:46"
         },
         {
             "name": "laravelcollective/html",
-            "version": "v5.3.0",
+            "version": "v5.2.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/LaravelCollective/html.git",
-                "reference": "961ce141c16c6b085128f209496c26efd3e681ca"
+                "reference": "3a312d39ffe37da0f57b602618b61fd07c1fcec5"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/LaravelCollective/html/zipball/961ce141c16c6b085128f209496c26efd3e681ca",
-                "reference": "961ce141c16c6b085128f209496c26efd3e681ca",
+                "url": "https://api.github.com/repos/LaravelCollective/html/zipball/3a312d39ffe37da0f57b602618b61fd07c1fcec5",
+                "reference": "3a312d39ffe37da0f57b602618b61fd07c1fcec5",
                 "shasum": ""
             },
             "require": {
-                "illuminate/http": "5.3.*",
-                "illuminate/routing": "5.3.*",
-                "illuminate/session": "5.3.*",
-                "illuminate/support": "5.3.*",
-                "illuminate/view": "5.3.*",
-                "php": ">=5.6.4"
+                "illuminate/http": "5.2.*",
+                "illuminate/routing": "5.2.*",
+                "illuminate/session": "5.2.*",
+                "illuminate/support": "5.2.*",
+                "illuminate/view": "5.2.*",
+                "php": ">=5.5.9"
             },
             "require-dev": {
-                "illuminate/database": "5.3.*",
-                "mockery/mockery": "~0.9.4",
-                "phpunit/phpunit": "~5.4"
+                "illuminate/database": "5.2.*",
+                "mockery/mockery": "~0.9",
+                "phpunit/phpunit": "~4.0"
             },
             "type": "library",
             "autoload": {
@@ -909,20 +1002,20 @@
             ],
             "description": "HTML and Form Builders for the Laravel Framework",
             "homepage": "http://laravelcollective.com",
-            "time": "2016-08-27 23:52:43"
+            "time": "2016-01-27 22:29:54"
         },
         {
             "name": "league/flysystem",
-            "version": "1.0.27",
+            "version": "1.0.19",
             "source": {
                 "type": "git",
                 "url": "https://github.com/thephpleague/flysystem.git",
-                "reference": "50e2045ed70a7e75a5e30bc3662904f3b67af8a9"
+                "reference": "635ee279a522233a567984756bf9da1db243d9bf"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/50e2045ed70a7e75a5e30bc3662904f3b67af8a9",
-                "reference": "50e2045ed70a7e75a5e30bc3662904f3b67af8a9",
+                "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/635ee279a522233a567984756bf9da1db243d9bf",
+                "reference": "635ee279a522233a567984756bf9da1db243d9bf",
                 "shasum": ""
             },
             "require": {
@@ -935,7 +1028,7 @@
                 "ext-fileinfo": "*",
                 "mockery/mockery": "~0.9",
                 "phpspec/phpspec": "^2.2",
-                "phpunit/phpunit": "~4.8"
+                "phpunit/phpunit": "~4.8 || ~5.0"
             },
             "suggest": {
                 "ext-fileinfo": "Required for MimeType",
@@ -992,30 +1085,30 @@
                 "sftp",
                 "storage"
             ],
-            "time": "2016-08-10 08:55:11"
+            "time": "2016-03-12 19:04:33"
         },
         {
             "name": "league/oauth1-client",
-            "version": "1.7.0",
+            "version": "1.6.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/thephpleague/oauth1-client.git",
-                "reference": "fca5f160650cb74d23fc11aa570dd61f86dcf647"
+                "reference": "cef3ceda13c78f89c323e4d5e6301c0eb7cea422"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/fca5f160650cb74d23fc11aa570dd61f86dcf647",
-                "reference": "fca5f160650cb74d23fc11aa570dd61f86dcf647",
+                "url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/cef3ceda13c78f89c323e4d5e6301c0eb7cea422",
+                "reference": "cef3ceda13c78f89c323e4d5e6301c0eb7cea422",
                 "shasum": ""
             },
             "require": {
-                "guzzlehttp/guzzle": "^6.0",
-                "php": ">=5.5.0"
+                "guzzle/guzzle": "3.*",
+                "php": ">=5.3.0"
             },
             "require-dev": {
-                "mockery/mockery": "^0.9",
-                "phpunit/phpunit": "^4.0",
-                "squizlabs/php_codesniffer": "^2.0"
+                "mockery/mockery": "~0.9",
+                "phpunit/phpunit": "~4.0",
+                "squizlabs/php_codesniffer": "~2.0"
             },
             "type": "library",
             "extra": {
@@ -1055,20 +1148,20 @@
                 "tumblr",
                 "twitter"
             ],
-            "time": "2016-08-17 00:36:58"
+            "time": "2015-10-23 04:02:07"
         },
         {
             "name": "monolog/monolog",
-            "version": "1.21.0",
+            "version": "1.18.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Seldaek/monolog.git",
-                "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952"
+                "reference": "a5f2734e8c16f3aa21b3da09715d10e15b4d2d45"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f42fbdfd53e306bda545845e4dbfd3e72edb4952",
-                "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952",
+                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/a5f2734e8c16f3aa21b3da09715d10e15b4d2d45",
+                "reference": "a5f2734e8c16f3aa21b3da09715d10e15b4d2d45",
                 "shasum": ""
             },
             "require": {
@@ -1083,13 +1176,13 @@
                 "doctrine/couchdb": "~1.0@dev",
                 "graylog2/gelf-php": "~1.0",
                 "jakub-onderka/php-parallel-lint": "0.9",
-                "php-amqplib/php-amqplib": "~2.4",
                 "php-console/php-console": "^3.1.3",
                 "phpunit/phpunit": "~4.5",
                 "phpunit/phpunit-mock-objects": "2.3.0",
+                "raven/raven": "^0.13",
                 "ruflin/elastica": ">=0.90 <3.0",
-                "sentry/sentry": "^0.13",
-                "swiftmailer/swiftmailer": "~5.3"
+                "swiftmailer/swiftmailer": "~5.3",
+                "videlalvaro/php-amqplib": "~2.4"
             },
             "suggest": {
                 "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
@@ -1098,11 +1191,11 @@
                 "ext-mongo": "Allow sending log messages to a MongoDB server",
                 "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
                 "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
-                "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
                 "php-console/php-console": "Allow sending log messages to Google Chrome",
+                "raven/raven": "Allow sending log messages to a Sentry server",
                 "rollbar/rollbar": "Allow sending log messages to Rollbar",
                 "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
-                "sentry/sentry": "Allow sending log messages to a Sentry server"
+                "videlalvaro/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib"
             },
             "type": "library",
             "extra": {
@@ -1133,7 +1226,7 @@
                 "logging",
                 "psr-3"
             ],
-            "time": "2016-07-29 03:23:52"
+            "time": "2016-03-13 16:08:35"
         },
         {
             "name": "mtdowling/cron-expression",
@@ -1228,16 +1321,16 @@
         },
         {
             "name": "nikic/php-parser",
-            "version": "v2.1.1",
+            "version": "v2.0.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/nikic/PHP-Parser.git",
-                "reference": "4dd659edadffdc2143e4753df655d866dbfeedf0"
+                "reference": "ce5be709d59b32dd8a88c80259028759991a4206"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4dd659edadffdc2143e4753df655d866dbfeedf0",
-                "reference": "4dd659edadffdc2143e4753df655d866dbfeedf0",
+                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/ce5be709d59b32dd8a88c80259028759991a4206",
+                "reference": "ce5be709d59b32dd8a88c80259028759991a4206",
                 "shasum": ""
             },
             "require": {
@@ -1253,7 +1346,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.1-dev"
+                    "dev-master": "2.0-dev"
                 }
             },
             "autoload": {
@@ -1275,20 +1368,20 @@
                 "parser",
                 "php"
             ],
-            "time": "2016-09-16 12:04:44"
+            "time": "2016-02-28 19:48:28"
         },
         {
             "name": "paragonie/random_compat",
-            "version": "v2.0.2",
+            "version": "v1.2.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/paragonie/random_compat.git",
-                "reference": "088c04e2f261c33bed6ca5245491cfca69195ccf"
+                "reference": "b3313b618f4edd76523572531d5d7e22fe747430"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/paragonie/random_compat/zipball/088c04e2f261c33bed6ca5245491cfca69195ccf",
-                "reference": "088c04e2f261c33bed6ca5245491cfca69195ccf",
+                "url": "https://api.github.com/repos/paragonie/random_compat/zipball/b3313b618f4edd76523572531d5d7e22fe747430",
+                "reference": "b3313b618f4edd76523572531d5d7e22fe747430",
                 "shasum": ""
             },
             "require": {
@@ -1323,7 +1416,7 @@
                 "pseudorandom",
                 "random"
             ],
-            "time": "2016-04-03 06:00:07"
+            "time": "2016-03-11 19:54:08"
         },
         {
             "name": "proengsoft/laravel-jsvalidation",
@@ -1386,16 +1479,16 @@
         },
         {
             "name": "psr/http-message",
-            "version": "1.0.1",
+            "version": "1.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/php-fig/http-message.git",
-                "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
+                "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
-                "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
+                "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298",
+                "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298",
                 "shasum": ""
             },
             "require": {
@@ -1423,7 +1516,6 @@
                 }
             ],
             "description": "Common interface for HTTP messages",
-            "homepage": "https://github.com/php-fig/http-message",
             "keywords": [
                 "http",
                 "http-message",
@@ -1432,7 +1524,7 @@
                 "request",
                 "response"
             ],
-            "time": "2016-08-06 14:39:51"
+            "time": "2015-05-04 20:22:00"
         },
         {
             "name": "psr/log",
@@ -1545,104 +1637,24 @@
             "time": "2016-03-09 05:03:14"
         },
         {
-            "name": "ramsey/uuid",
-            "version": "3.5.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/ramsey/uuid.git",
-                "reference": "a6d15c8618ea3951fd54d34e326b68d3d0bc0786"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/ramsey/uuid/zipball/a6d15c8618ea3951fd54d34e326b68d3d0bc0786",
-                "reference": "a6d15c8618ea3951fd54d34e326b68d3d0bc0786",
-                "shasum": ""
-            },
-            "require": {
-                "paragonie/random_compat": "^1.0|^2.0",
-                "php": ">=5.4"
-            },
-            "replace": {
-                "rhumsaa/uuid": "self.version"
-            },
-            "require-dev": {
-                "apigen/apigen": "^4.1",
-                "codeception/aspect-mock": "1.0.0",
-                "goaop/framework": "1.0.0-alpha.2",
-                "ircmaxell/random-lib": "^1.1",
-                "jakub-onderka/php-parallel-lint": "^0.9.0",
-                "mockery/mockery": "^0.9.4",
-                "moontoast/math": "^1.1",
-                "phpunit/phpunit": "^4.7|>=5.0 <5.4",
-                "satooshi/php-coveralls": "^0.6.1",
-                "squizlabs/php_codesniffer": "^2.3"
-            },
-            "suggest": {
-                "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator",
-                "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator",
-                "ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
-                "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).",
-                "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid",
-                "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Ramsey\\Uuid\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Marijn Huizendveld",
-                    "email": "marijn.huizendveld@gmail.com"
-                },
-                {
-                    "name": "Thibaud Fabre",
-                    "email": "thibaud@aztech.io"
-                },
-                {
-                    "name": "Ben Ramsey",
-                    "email": "ben@benramsey.com",
-                    "homepage": "https://benramsey.com"
-                }
-            ],
-            "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).",
-            "homepage": "https://github.com/ramsey/uuid",
-            "keywords": [
-                "guid",
-                "identifier",
-                "uuid"
-            ],
-            "time": "2016-08-02 18:39:32"
-        },
-        {
             "name": "swiftmailer/swiftmailer",
-            "version": "v5.4.3",
+            "version": "v5.4.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/swiftmailer/swiftmailer.git",
-                "reference": "4cc92842069c2bbc1f28daaaf1d2576ec4dfe153"
+                "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/4cc92842069c2bbc1f28daaaf1d2576ec4dfe153",
-                "reference": "4cc92842069c2bbc1f28daaaf1d2576ec4dfe153",
+                "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/0697e6aa65c83edf97bb0f23d8763f94e3f11421",
+                "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3"
             },
             "require-dev": {
-                "mockery/mockery": "~0.9.1"
+                "mockery/mockery": "~0.9.1,<0.9.4"
             },
             "type": "library",
             "extra": {
@@ -1675,20 +1687,20 @@
                 "mail",
                 "mailer"
             ],
-            "time": "2016-07-08 11:51:25"
+            "time": "2015-06-06 14:19:39"
         },
         {
             "name": "symfony/console",
-            "version": "v3.1.4",
+            "version": "v3.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/console.git",
-                "reference": "8ea494c34f0f772c3954b5fbe00bffc5a435e563"
+                "reference": "2ed5e2706ce92313d120b8fe50d1063bcfd12e04"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/console/zipball/8ea494c34f0f772c3954b5fbe00bffc5a435e563",
-                "reference": "8ea494c34f0f772c3954b5fbe00bffc5a435e563",
+                "url": "https://api.github.com/repos/symfony/console/zipball/2ed5e2706ce92313d120b8fe50d1063bcfd12e04",
+                "reference": "2ed5e2706ce92313d120b8fe50d1063bcfd12e04",
                 "shasum": ""
             },
             "require": {
@@ -1708,7 +1720,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "3.0-dev"
                 }
             },
             "autoload": {
@@ -1735,20 +1747,20 @@
             ],
             "description": "Symfony Console Component",
             "homepage": "https://symfony.com",
-            "time": "2016-08-19 06:48:39"
+            "time": "2016-02-28 16:24:34"
         },
         {
             "name": "symfony/debug",
-            "version": "v3.1.4",
+            "version": "v3.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/debug.git",
-                "reference": "34f6ac18c2974ca5fce68adf419ee7d15def6f11"
+                "reference": "29606049ced1ec715475f88d1bbe587252a3476e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/debug/zipball/34f6ac18c2974ca5fce68adf419ee7d15def6f11",
-                "reference": "34f6ac18c2974ca5fce68adf419ee7d15def6f11",
+                "url": "https://api.github.com/repos/symfony/debug/zipball/29606049ced1ec715475f88d1bbe587252a3476e",
+                "reference": "29606049ced1ec715475f88d1bbe587252a3476e",
                 "shasum": ""
             },
             "require": {
@@ -1765,7 +1777,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "3.0-dev"
                 }
             },
             "autoload": {
@@ -1792,20 +1804,20 @@
             ],
             "description": "Symfony Debug Component",
             "homepage": "https://symfony.com",
-            "time": "2016-08-23 13:39:15"
+            "time": "2016-01-27 05:14:46"
         },
         {
             "name": "symfony/event-dispatcher",
-            "version": "v3.1.4",
+            "version": "v3.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/event-dispatcher.git",
-                "reference": "c0c00c80b3a69132c4e55c3e7db32b4a387615e5"
+                "reference": "4dd5df31a28c0f82b41cb1e1599b74b5dcdbdafa"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c0c00c80b3a69132c4e55c3e7db32b4a387615e5",
-                "reference": "c0c00c80b3a69132c4e55c3e7db32b4a387615e5",
+                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4dd5df31a28c0f82b41cb1e1599b74b5dcdbdafa",
+                "reference": "4dd5df31a28c0f82b41cb1e1599b74b5dcdbdafa",
                 "shasum": ""
             },
             "require": {
@@ -1825,7 +1837,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "3.0-dev"
                 }
             },
             "autoload": {
@@ -1852,20 +1864,20 @@
             ],
             "description": "Symfony EventDispatcher Component",
             "homepage": "https://symfony.com",
-            "time": "2016-07-19 10:45:57"
+            "time": "2016-01-27 05:14:46"
         },
         {
             "name": "symfony/finder",
-            "version": "v3.1.4",
+            "version": "v3.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/finder.git",
-                "reference": "e568ef1784f447a0e54dcb6f6de30b9747b0f577"
+                "reference": "623bda0abd9aa29e529c8e9c08b3b84171914723"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/finder/zipball/e568ef1784f447a0e54dcb6f6de30b9747b0f577",
-                "reference": "e568ef1784f447a0e54dcb6f6de30b9747b0f577",
+                "url": "https://api.github.com/repos/symfony/finder/zipball/623bda0abd9aa29e529c8e9c08b3b84171914723",
+                "reference": "623bda0abd9aa29e529c8e9c08b3b84171914723",
                 "shasum": ""
             },
             "require": {
@@ -1874,7 +1886,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "3.0-dev"
                 }
             },
             "autoload": {
@@ -1901,25 +1913,24 @@
             ],
             "description": "Symfony Finder Component",
             "homepage": "https://symfony.com",
-            "time": "2016-08-26 12:04:02"
+            "time": "2016-01-27 05:14:46"
         },
         {
             "name": "symfony/http-foundation",
-            "version": "v3.1.4",
+            "version": "v3.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/http-foundation.git",
-                "reference": "63592e00fd90632b57ee50220a1ddb29b6bf3bb4"
+                "reference": "52065702c71743c05d415a8facfcad6d4257e8d7"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/http-foundation/zipball/63592e00fd90632b57ee50220a1ddb29b6bf3bb4",
-                "reference": "63592e00fd90632b57ee50220a1ddb29b6bf3bb4",
+                "url": "https://api.github.com/repos/symfony/http-foundation/zipball/52065702c71743c05d415a8facfcad6d4257e8d7",
+                "reference": "52065702c71743c05d415a8facfcad6d4257e8d7",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.5.9",
-                "symfony/polyfill-mbstring": "~1.1"
+                "php": ">=5.5.9"
             },
             "require-dev": {
                 "symfony/expression-language": "~2.8|~3.0"
@@ -1927,7 +1938,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "3.0-dev"
                 }
             },
             "autoload": {
@@ -1954,20 +1965,20 @@
             ],
             "description": "Symfony HttpFoundation Component",
             "homepage": "https://symfony.com",
-            "time": "2016-08-22 12:11:19"
+            "time": "2016-02-28 16:24:34"
         },
         {
             "name": "symfony/http-kernel",
-            "version": "v3.1.4",
+            "version": "v3.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/http-kernel.git",
-                "reference": "aeda215d6b01f119508c090d2a09ebb5b0bc61f3"
+                "reference": "59c0a1972e9aad87b7a56bbe1ccee26b7535a0db"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/http-kernel/zipball/aeda215d6b01f119508c090d2a09ebb5b0bc61f3",
-                "reference": "aeda215d6b01f119508c090d2a09ebb5b0bc61f3",
+                "url": "https://api.github.com/repos/symfony/http-kernel/zipball/59c0a1972e9aad87b7a56bbe1ccee26b7535a0db",
+                "reference": "59c0a1972e9aad87b7a56bbe1ccee26b7535a0db",
                 "shasum": ""
             },
             "require": {
@@ -1975,7 +1986,7 @@
                 "psr/log": "~1.0",
                 "symfony/debug": "~2.8|~3.0",
                 "symfony/event-dispatcher": "~2.8|~3.0",
-                "symfony/http-foundation": "~2.8.8|~3.0.8|~3.1.2|~3.2"
+                "symfony/http-foundation": "~2.8|~3.0"
             },
             "conflict": {
                 "symfony/config": "<2.8"
@@ -2009,7 +2020,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "3.0-dev"
                 }
             },
             "autoload": {
@@ -2036,20 +2047,20 @@
             ],
             "description": "Symfony HttpKernel Component",
             "homepage": "https://symfony.com",
-            "time": "2016-09-03 15:28:24"
+            "time": "2016-02-28 21:33:13"
         },
         {
             "name": "symfony/polyfill-mbstring",
-            "version": "v1.2.0",
+            "version": "v1.1.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/polyfill-mbstring.git",
-                "reference": "dff51f72b0706335131b00a7f49606168c582594"
+                "reference": "1289d16209491b584839022f29257ad859b8532d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594",
-                "reference": "dff51f72b0706335131b00a7f49606168c582594",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/1289d16209491b584839022f29257ad859b8532d",
+                "reference": "1289d16209491b584839022f29257ad859b8532d",
                 "shasum": ""
             },
             "require": {
@@ -2061,7 +2072,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.2-dev"
+                    "dev-master": "1.1-dev"
                 }
             },
             "autoload": {
@@ -2095,20 +2106,20 @@
                 "portable",
                 "shim"
             ],
-            "time": "2016-05-18 14:26:46"
+            "time": "2016-01-20 09:13:37"
         },
         {
             "name": "symfony/polyfill-php56",
-            "version": "v1.2.0",
+            "version": "v1.1.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/polyfill-php56.git",
-                "reference": "3edf57a8fbf9a927533344cef65ad7e1cf31030a"
+                "reference": "4d891fff050101a53a4caabb03277284942d1ad9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/3edf57a8fbf9a927533344cef65ad7e1cf31030a",
-                "reference": "3edf57a8fbf9a927533344cef65ad7e1cf31030a",
+                "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/4d891fff050101a53a4caabb03277284942d1ad9",
+                "reference": "4d891fff050101a53a4caabb03277284942d1ad9",
                 "shasum": ""
             },
             "require": {
@@ -2118,7 +2129,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.2-dev"
+                    "dev-master": "1.1-dev"
                 }
             },
             "autoload": {
@@ -2151,20 +2162,20 @@
                 "portable",
                 "shim"
             ],
-            "time": "2016-05-18 14:26:46"
+            "time": "2016-01-20 09:13:37"
         },
         {
             "name": "symfony/polyfill-util",
-            "version": "v1.2.0",
+            "version": "v1.1.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/polyfill-util.git",
-                "reference": "ef830ce3d218e622b221d6bfad42c751d974bf99"
+                "reference": "8de62801aa12bc4dfcf85eef5d21981ae7bb3cc4"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/ef830ce3d218e622b221d6bfad42c751d974bf99",
-                "reference": "ef830ce3d218e622b221d6bfad42c751d974bf99",
+                "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/8de62801aa12bc4dfcf85eef5d21981ae7bb3cc4",
+                "reference": "8de62801aa12bc4dfcf85eef5d21981ae7bb3cc4",
                 "shasum": ""
             },
             "require": {
@@ -2173,7 +2184,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.2-dev"
+                    "dev-master": "1.1-dev"
                 }
             },
             "autoload": {
@@ -2203,20 +2214,20 @@
                 "polyfill",
                 "shim"
             ],
-            "time": "2016-05-18 14:26:46"
+            "time": "2016-01-20 09:13:37"
         },
         {
             "name": "symfony/process",
-            "version": "v3.1.4",
+            "version": "v3.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/process.git",
-                "reference": "e64e93041c80e77197ace5ab9385dedb5a143697"
+                "reference": "dfecef47506179db2501430e732adbf3793099c8"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/process/zipball/e64e93041c80e77197ace5ab9385dedb5a143697",
-                "reference": "e64e93041c80e77197ace5ab9385dedb5a143697",
+                "url": "https://api.github.com/repos/symfony/process/zipball/dfecef47506179db2501430e732adbf3793099c8",
+                "reference": "dfecef47506179db2501430e732adbf3793099c8",
                 "shasum": ""
             },
             "require": {
@@ -2225,7 +2236,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "3.0-dev"
                 }
             },
             "autoload": {
@@ -2252,20 +2263,20 @@
             ],
             "description": "Symfony Process Component",
             "homepage": "https://symfony.com",
-            "time": "2016-08-16 14:58:24"
+            "time": "2016-02-02 13:44:19"
         },
         {
             "name": "symfony/routing",
-            "version": "v3.1.4",
+            "version": "v3.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/routing.git",
-                "reference": "8edf62498a1a4c57ba317664a4b698339c10cdf6"
+                "reference": "fa1e9a8173cf0077dd995205da453eacd758fdf6"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/routing/zipball/8edf62498a1a4c57ba317664a4b698339c10cdf6",
-                "reference": "8edf62498a1a4c57ba317664a4b698339c10cdf6",
+                "url": "https://api.github.com/repos/symfony/routing/zipball/fa1e9a8173cf0077dd995205da453eacd758fdf6",
+                "reference": "fa1e9a8173cf0077dd995205da453eacd758fdf6",
                 "shasum": ""
             },
             "require": {
@@ -2294,7 +2305,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "3.0-dev"
                 }
             },
             "autoload": {
@@ -2327,20 +2338,20 @@
                 "uri",
                 "url"
             ],
-            "time": "2016-08-16 14:58:24"
+            "time": "2016-02-04 13:53:13"
         },
         {
             "name": "symfony/translation",
-            "version": "v3.1.4",
+            "version": "v3.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/translation.git",
-                "reference": "a35edc277513c9bc0f063ca174c36b346f974528"
+                "reference": "2de0b6f7ebe43cffd8a06996ebec6aab79ea9e91"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/translation/zipball/a35edc277513c9bc0f063ca174c36b346f974528",
-                "reference": "a35edc277513c9bc0f063ca174c36b346f974528",
+                "url": "https://api.github.com/repos/symfony/translation/zipball/2de0b6f7ebe43cffd8a06996ebec6aab79ea9e91",
+                "reference": "2de0b6f7ebe43cffd8a06996ebec6aab79ea9e91",
                 "shasum": ""
             },
             "require": {
@@ -2364,7 +2375,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "3.0-dev"
                 }
             },
             "autoload": {
@@ -2391,20 +2402,20 @@
             ],
             "description": "Symfony Translation Component",
             "homepage": "https://symfony.com",
-            "time": "2016-08-05 08:37:39"
+            "time": "2016-02-02 13:44:19"
         },
         {
             "name": "symfony/var-dumper",
-            "version": "v3.1.4",
+            "version": "v3.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/var-dumper.git",
-                "reference": "62ee73706c421654a4c840028954510277f7dfc8"
+                "reference": "9a6a883c48acb215d4825ce9de61dccf93d62074"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/62ee73706c421654a4c840028954510277f7dfc8",
-                "reference": "62ee73706c421654a4c840028954510277f7dfc8",
+                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/9a6a883c48acb215d4825ce9de61dccf93d62074",
+                "reference": "9a6a883c48acb215d4825ce9de61dccf93d62074",
                 "shasum": ""
             },
             "require": {
@@ -2420,7 +2431,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "3.0-dev"
                 }
             },
             "autoload": {
@@ -2454,32 +2465,32 @@
                 "debug",
                 "dump"
             ],
-            "time": "2016-08-31 09:05:42"
+            "time": "2016-02-13 09:23:44"
         },
         {
             "name": "vlucas/phpdotenv",
-            "version": "v2.4.0",
+            "version": "v2.2.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/vlucas/phpdotenv.git",
-                "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c"
+                "reference": "9caf304153dc2288e4970caec6f1f3b3bc205412"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c",
-                "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c",
+                "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/9caf304153dc2288e4970caec6f1f3b3bc205412",
+                "reference": "9caf304153dc2288e4970caec6f1f3b3bc205412",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.9"
             },
             "require-dev": {
-                "phpunit/phpunit": "^4.8 || ^5.0"
+                "phpunit/phpunit": "^4.8|^5.0"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.4-dev"
+                    "dev-master": "2.2-dev"
                 }
             },
             "autoload": {
@@ -2489,7 +2500,7 @@
             },
             "notification-url": "https://packagist.org/downloads/",
             "license": [
-                "BSD-3-Clause-Attribution"
+                "BSD"
             ],
             "authors": [
                 {
@@ -2499,12 +2510,13 @@
                 }
             ],
             "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
+            "homepage": "http://github.com/vlucas/phpdotenv",
             "keywords": [
                 "dotenv",
                 "env",
                 "environment"
             ],
-            "time": "2016-09-01 10:05:43"
+            "time": "2015-12-29 15:10:30"
         },
         {
             "name": "webpatser/laravel-countries",
@@ -2630,23 +2642,23 @@
     "packages-dev": [
         {
             "name": "barryvdh/laravel-debugbar",
-            "version": "V2.2.3",
+            "version": "v2.1.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/barryvdh/laravel-debugbar.git",
-                "reference": "ecd1ce5c4a827e2f6a8fb41bcf67713beb1c1cbd"
+                "reference": "677ac784f24241a89e17d96a742900efc7232305"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/ecd1ce5c4a827e2f6a8fb41bcf67713beb1c1cbd",
-                "reference": "ecd1ce5c4a827e2f6a8fb41bcf67713beb1c1cbd",
+                "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/677ac784f24241a89e17d96a742900efc7232305",
+                "reference": "677ac784f24241a89e17d96a742900efc7232305",
                 "shasum": ""
             },
             "require": {
-                "illuminate/support": "5.1.*|5.2.*|5.3.*",
-                "maximebf/debugbar": "~1.11.0|~1.12.0",
-                "php": ">=5.5.9",
-                "symfony/finder": "~2.7|~3.0"
+                "illuminate/support": "~5.0.17|5.1.*|5.2.*",
+                "maximebf/debugbar": "~1.11.0",
+                "php": ">=5.4.0",
+                "symfony/finder": "~2.6|~3.0"
             },
             "type": "library",
             "extra": {
@@ -2680,35 +2692,32 @@
                 "profiler",
                 "webprofiler"
             ],
-            "time": "2016-07-29 15:00:36"
+            "time": "2016-02-17 08:43:00"
         },
         {
             "name": "barryvdh/laravel-ide-helper",
-            "version": "v2.2.1",
+            "version": "v2.1.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/barryvdh/laravel-ide-helper.git",
-                "reference": "28af7cd19ca41cc0c63dd1de2b46c2b84d31c463"
+                "reference": "d82e8f191fb043a0f8cbf2de64fd3027bfa4f772"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/28af7cd19ca41cc0c63dd1de2b46c2b84d31c463",
-                "reference": "28af7cd19ca41cc0c63dd1de2b46c2b84d31c463",
+                "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/d82e8f191fb043a0f8cbf2de64fd3027bfa4f772",
+                "reference": "d82e8f191fb043a0f8cbf2de64fd3027bfa4f772",
                 "shasum": ""
             },
             "require": {
-                "barryvdh/reflection-docblock": "^2.0.4",
-                "illuminate/console": "^5.0,<5.4",
-                "illuminate/filesystem": "^5.0,<5.4",
-                "illuminate/support": "^5.0,<5.4",
+                "illuminate/console": "5.0.x|5.1.x|5.2.x",
+                "illuminate/filesystem": "5.0.x|5.1.x|5.2.x",
+                "illuminate/support": "5.0.x|5.1.x|5.2.x",
                 "php": ">=5.4.0",
-                "symfony/class-loader": "^2.3|^3.0"
+                "phpdocumentor/reflection-docblock": "2.0.4",
+                "symfony/class-loader": "~2.3"
             },
             "require-dev": {
-                "doctrine/dbal": "~2.3",
-                "phpunit/phpunit": "4.*",
-                "scrutinizer/ocular": "~1.1",
-                "squizlabs/php_codesniffer": "~2.3"
+                "doctrine/dbal": "~2.3"
             },
             "suggest": {
                 "doctrine/dbal": "Load information from the database about models for phpdocs (~2.3)"
@@ -2716,7 +2725,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.2-dev"
+                    "dev-master": "2.1-dev"
                 }
             },
             "autoload": {
@@ -2746,56 +2755,7 @@
                 "phpstorm",
                 "sublime"
             ],
-            "time": "2016-07-04 11:52:48"
-        },
-        {
-            "name": "barryvdh/reflection-docblock",
-            "version": "v2.0.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/barryvdh/ReflectionDocBlock.git",
-                "reference": "3dcbd98b5d9384a5357266efba8fd29884458e5c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/3dcbd98b5d9384a5357266efba8fd29884458e5c",
-                "reference": "3dcbd98b5d9384a5357266efba8fd29884458e5c",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.0,<4.5"
-            },
-            "suggest": {
-                "dflydev/markdown": "~1.0",
-                "erusev/parsedown": "~1.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Barryvdh": [
-                        "src/"
-                    ]
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Mike van Riel",
-                    "email": "mike.vanriel@naenius.com"
-                }
-            ],
-            "time": "2016-06-13 19:28:20"
+            "time": "2015-12-21 19:48:06"
         },
         {
             "name": "doctrine/instantiator",
@@ -2853,29 +2813,33 @@
         },
         {
             "name": "fzaninotto/faker",
-            "version": "v1.6.0",
+            "version": "v1.5.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/fzaninotto/Faker.git",
-                "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123"
+                "reference": "d0190b156bcca848d401fb80f31f504f37141c8d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/44f9a286a04b80c76a4e5fb7aad8bb539b920123",
-                "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123",
+                "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d",
+                "reference": "d0190b156bcca848d401fb80f31f504f37141c8d",
                 "shasum": ""
             },
             "require": {
-                "php": "^5.3.3|^7.0"
+                "php": ">=5.3.3"
             },
             "require-dev": {
-                "ext-intl": "*",
                 "phpunit/phpunit": "~4.0",
                 "squizlabs/php_codesniffer": "~1.5"
             },
+            "suggest": {
+                "ext-intl": "*"
+            },
             "type": "library",
             "extra": {
-                "branch-alias": []
+                "branch-alias": {
+                    "dev-master": "1.5.x-dev"
+                }
             },
             "autoload": {
                 "psr-4": {
@@ -2897,7 +2861,7 @@
                 "faker",
                 "fixtures"
             ],
-            "time": "2016-04-29 12:21:54"
+            "time": "2015-05-29 06:29:14"
         },
         {
             "name": "hamcrest/hamcrest-php",
@@ -2946,16 +2910,16 @@
         },
         {
             "name": "maximebf/debugbar",
-            "version": "v1.12.0",
+            "version": "v1.11.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/maximebf/php-debugbar.git",
-                "reference": "e634fbd32cd6bc3fa0e8c972b52d4bf49bab3988"
+                "reference": "d9302891c1f0a0ac5a4f66725163a00537c6359f"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/e634fbd32cd6bc3fa0e8c972b52d4bf49bab3988",
-                "reference": "e634fbd32cd6bc3fa0e8c972b52d4bf49bab3988",
+                "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/d9302891c1f0a0ac5a4f66725163a00537c6359f",
+                "reference": "d9302891c1f0a0ac5a4f66725163a00537c6359f",
                 "shasum": ""
             },
             "require": {
@@ -2974,7 +2938,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.12-dev"
+                    "dev-master": "1.11-dev"
                 }
             },
             "autoload": {
@@ -3003,20 +2967,20 @@
                 "debug",
                 "debugbar"
             ],
-            "time": "2016-05-15 13:11:34"
+            "time": "2016-01-22 12:22:23"
         },
         {
             "name": "mockery/mockery",
-            "version": "0.9.5",
+            "version": "0.9.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/padraic/mockery.git",
-                "reference": "4db079511a283e5aba1b3c2fb19037c645e70fc2"
+                "reference": "70bba85e4aabc9449626651f48b9018ede04f86b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/padraic/mockery/zipball/4db079511a283e5aba1b3c2fb19037c645e70fc2",
-                "reference": "4db079511a283e5aba1b3c2fb19037c645e70fc2",
+                "url": "https://api.github.com/repos/padraic/mockery/zipball/70bba85e4aabc9449626651f48b9018ede04f86b",
+                "reference": "70bba85e4aabc9449626651f48b9018ede04f86b",
                 "shasum": ""
             },
             "require": {
@@ -3044,7 +3008,7 @@
             ],
             "authors": [
                 {
-                    "name": "Pádraic Brady",
+                    "name": "Padraic Brady",
                     "email": "padraic.brady@gmail.com",
                     "homepage": "http://blog.astrumfutura.com"
                 },
@@ -3068,138 +3032,41 @@
                 "test double",
                 "testing"
             ],
-            "time": "2016-05-22 21:52:33"
-        },
-        {
-            "name": "phpdocumentor/reflection-common",
-            "version": "1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
-                "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
-                "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.5"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^4.6"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "phpDocumentor\\Reflection\\": [
-                        "src"
-                    ]
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jaap van Otterdijk",
-                    "email": "opensource@ijaap.nl"
-                }
-            ],
-            "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
-            "homepage": "http://www.phpdoc.org",
-            "keywords": [
-                "FQSEN",
-                "phpDocumentor",
-                "phpdoc",
-                "reflection",
-                "static analysis"
-            ],
-            "time": "2015-12-27 11:43:31"
+            "time": "2015-04-02 19:54:00"
         },
         {
             "name": "phpdocumentor/reflection-docblock",
-            "version": "3.1.0",
+            "version": "2.0.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
-                "reference": "9270140b940ff02e58ec577c237274e92cd40cdd"
+                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9270140b940ff02e58ec577c237274e92cd40cdd",
-                "reference": "9270140b940ff02e58ec577c237274e92cd40cdd",
+                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
+                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.5",
-                "phpdocumentor/reflection-common": "^1.0@dev",
-                "phpdocumentor/type-resolver": "^0.2.0",
-                "webmozart/assert": "^1.0"
+                "php": ">=5.3.3"
             },
             "require-dev": {
-                "mockery/mockery": "^0.9.4",
-                "phpunit/phpunit": "^4.4"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "phpDocumentor\\Reflection\\": [
-                        "src/"
-                    ]
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Mike van Riel",
-                    "email": "me@mikevanriel.com"
-                }
-            ],
-            "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
-            "time": "2016-06-10 09:48:41"
-        },
-        {
-            "name": "phpdocumentor/type-resolver",
-            "version": "0.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phpDocumentor/TypeResolver.git",
-                "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b39c7a5b194f9ed7bd0dd345c751007a41862443",
-                "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.5",
-                "phpdocumentor/reflection-common": "^1.0"
+                "phpunit/phpunit": "~4.0"
             },
-            "require-dev": {
-                "mockery/mockery": "^0.9.4",
-                "phpunit/phpunit": "^5.2||^4.8.24"
+            "suggest": {
+                "dflydev/markdown": "~1.0",
+                "erusev/parsedown": "~1.0"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.0.x-dev"
+                    "dev-master": "2.0.x-dev"
                 }
             },
             "autoload": {
-                "psr-4": {
-                    "phpDocumentor\\Reflection\\": [
+                "psr-0": {
+                    "phpDocumentor": [
                         "src/"
                     ]
                 }
@@ -3211,10 +3078,10 @@
             "authors": [
                 {
                     "name": "Mike van Riel",
-                    "email": "me@mikevanriel.com"
+                    "email": "mike.vanriel@naenius.com"
                 }
             ],
-            "time": "2016-06-10 07:14:17"
+            "time": "2015-02-03 12:10:50"
         },
         {
             "name": "phpspec/php-diff",
@@ -3252,16 +3119,16 @@
         },
         {
             "name": "phpspec/phpspec",
-            "version": "2.5.2",
+            "version": "2.4.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/phpspec/phpspec.git",
-                "reference": "7e7e104de01b5052195cefefcd0b29f1add4c116"
+                "reference": "5528ce1e93a1efa090c9404aba3395c329b4e6ed"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpspec/phpspec/zipball/7e7e104de01b5052195cefefcd0b29f1add4c116",
-                "reference": "7e7e104de01b5052195cefefcd0b29f1add4c116",
+                "url": "https://api.github.com/repos/phpspec/phpspec/zipball/5528ce1e93a1efa090c9404aba3395c329b4e6ed",
+                "reference": "5528ce1e93a1efa090c9404aba3395c329b4e6ed",
                 "shasum": ""
             },
             "require": {
@@ -3279,7 +3146,7 @@
             },
             "require-dev": {
                 "behat/behat": "^3.0.11",
-                "ciaranmcnulty/versionbasedtestskipper": "^0.2.1",
+                "bossa/phpspec2-expect": "~1.0",
                 "phpunit/phpunit": "~4.4",
                 "symfony/filesystem": "~2.1|~3.0"
             },
@@ -3292,7 +3159,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.5.x-dev"
+                    "dev-master": "2.2.x-dev"
                 }
             },
             "autoload": {
@@ -3326,36 +3193,36 @@
                 "testing",
                 "tests"
             ],
-            "time": "2016-09-04 11:59:15"
+            "time": "2016-01-01 10:17:54"
         },
         {
             "name": "phpspec/prophecy",
-            "version": "v1.6.1",
+            "version": "v1.6.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/phpspec/prophecy.git",
-                "reference": "58a8137754bc24b25740d4281399a4a3596058e0"
+                "reference": "3c91bdf81797d725b14cb62906f9a4ce44235972"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/58a8137754bc24b25740d4281399a4a3596058e0",
-                "reference": "58a8137754bc24b25740d4281399a4a3596058e0",
+                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3c91bdf81797d725b14cb62906f9a4ce44235972",
+                "reference": "3c91bdf81797d725b14cb62906f9a4ce44235972",
                 "shasum": ""
             },
             "require": {
                 "doctrine/instantiator": "^1.0.2",
                 "php": "^5.3|^7.0",
-                "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
-                "sebastian/comparator": "^1.1",
-                "sebastian/recursion-context": "^1.0"
+                "phpdocumentor/reflection-docblock": "~2.0",
+                "sebastian/comparator": "~1.1",
+                "sebastian/recursion-context": "~1.0"
             },
             "require-dev": {
-                "phpspec/phpspec": "^2.0"
+                "phpspec/phpspec": "~2.0"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.6.x-dev"
+                    "dev-master": "1.5.x-dev"
                 }
             },
             "autoload": {
@@ -3388,7 +3255,7 @@
                 "spy",
                 "stub"
             ],
-            "time": "2016-06-07 08:13:47"
+            "time": "2016-02-15 07:46:21"
         },
         {
             "name": "phpunit/php-code-coverage",
@@ -3542,24 +3409,21 @@
         },
         {
             "name": "phpunit/php-timer",
-            "version": "1.0.8",
+            "version": "1.0.7",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/php-timer.git",
-                "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260"
+                "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260",
-                "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
+                "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3"
             },
-            "require-dev": {
-                "phpunit/phpunit": "~4|~5"
-            },
             "type": "library",
             "autoload": {
                 "classmap": [
@@ -3582,7 +3446,7 @@
             "keywords": [
                 "timer"
             ],
-            "time": "2016-05-12 18:03:57"
+            "time": "2015-06-21 08:01:12"
         },
         {
             "name": "phpunit/php-token-stream",
@@ -3635,16 +3499,16 @@
         },
         {
             "name": "phpunit/phpunit",
-            "version": "4.8.27",
+            "version": "4.8.24",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90"
+                "reference": "a1066c562c52900a142a0e2bbf0582994671385e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c062dddcb68e44b563f66ee319ddae2b5a322a90",
-                "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a1066c562c52900a142a0e2bbf0582994671385e",
+                "reference": "a1066c562c52900a142a0e2bbf0582994671385e",
                 "shasum": ""
             },
             "require": {
@@ -3658,7 +3522,7 @@
                 "phpunit/php-code-coverage": "~2.1",
                 "phpunit/php-file-iterator": "~1.4",
                 "phpunit/php-text-template": "~1.2",
-                "phpunit/php-timer": "^1.0.6",
+                "phpunit/php-timer": ">=1.0.6",
                 "phpunit/phpunit-mock-objects": "~2.3",
                 "sebastian/comparator": "~1.1",
                 "sebastian/diff": "~1.2",
@@ -3703,7 +3567,7 @@
                 "testing",
                 "xunit"
             ],
-            "time": "2016-07-21 06:48:14"
+            "time": "2016-03-14 06:16:08"
         },
         {
             "name": "phpunit/phpunit-mock-objects",
@@ -3879,23 +3743,23 @@
         },
         {
             "name": "sebastian/environment",
-            "version": "1.3.8",
+            "version": "1.3.5",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/environment.git",
-                "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea"
+                "reference": "dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea",
-                "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea",
+                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf",
+                "reference": "dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf",
                 "shasum": ""
             },
             "require": {
-                "php": "^5.3.3 || ^7.0"
+                "php": ">=5.3.3"
             },
             "require-dev": {
-                "phpunit/phpunit": "^4.8 || ^5.0"
+                "phpunit/phpunit": "~4.4"
             },
             "type": "library",
             "extra": {
@@ -3925,20 +3789,20 @@
                 "environment",
                 "hhvm"
             ],
-            "time": "2016-08-18 05:49:44"
+            "time": "2016-02-26 18:40:46"
         },
         {
             "name": "sebastian/exporter",
-            "version": "1.2.2",
+            "version": "1.2.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/exporter.git",
-                "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
+                "reference": "7ae5513327cb536431847bcc0c10edba2701064e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
-                "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
+                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e",
+                "reference": "7ae5513327cb536431847bcc0c10edba2701064e",
                 "shasum": ""
             },
             "require": {
@@ -3946,13 +3810,12 @@
                 "sebastian/recursion-context": "~1.0"
             },
             "require-dev": {
-                "ext-mbstring": "*",
                 "phpunit/phpunit": "~4.4"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.3.x-dev"
+                    "dev-master": "1.2.x-dev"
                 }
             },
             "autoload": {
@@ -3992,7 +3855,7 @@
                 "export",
                 "exporter"
             ],
-            "time": "2016-06-17 09:04:28"
+            "time": "2015-06-21 07:55:53"
         },
         {
             "name": "sebastian/global-state",
@@ -4135,32 +3998,29 @@
         },
         {
             "name": "symfony/class-loader",
-            "version": "v3.1.4",
+            "version": "v2.8.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/class-loader.git",
-                "reference": "2d0ba77c46ecc96a6641009a98f72632216811ba"
+                "reference": "517ab0554b6a5744d04480cb06873ffbd9442d73"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/class-loader/zipball/2d0ba77c46ecc96a6641009a98f72632216811ba",
-                "reference": "2d0ba77c46ecc96a6641009a98f72632216811ba",
+                "url": "https://api.github.com/repos/symfony/class-loader/zipball/517ab0554b6a5744d04480cb06873ffbd9442d73",
+                "reference": "517ab0554b6a5744d04480cb06873ffbd9442d73",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.5.9"
-            },
-            "require-dev": {
-                "symfony/finder": "~2.8|~3.0",
+                "php": ">=5.3.9",
                 "symfony/polyfill-apcu": "~1.1"
             },
-            "suggest": {
-                "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM"
+            "require-dev": {
+                "symfony/finder": "~2.0,>=2.0.5|~3.0.0"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "2.8-dev"
                 }
             },
             "autoload": {
@@ -4187,20 +4047,20 @@
             ],
             "description": "Symfony ClassLoader Component",
             "homepage": "https://symfony.com",
-            "time": "2016-08-23 13:39:15"
+            "time": "2016-01-30 15:58:35"
         },
         {
             "name": "symfony/css-selector",
-            "version": "v3.1.4",
+            "version": "v3.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/css-selector.git",
-                "reference": "2851e1932d77ce727776154d659b232d061e816a"
+                "reference": "6605602690578496091ac20ec7a5cbd160d4dff4"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/css-selector/zipball/2851e1932d77ce727776154d659b232d061e816a",
-                "reference": "2851e1932d77ce727776154d659b232d061e816a",
+                "url": "https://api.github.com/repos/symfony/css-selector/zipball/6605602690578496091ac20ec7a5cbd160d4dff4",
+                "reference": "6605602690578496091ac20ec7a5cbd160d4dff4",
                 "shasum": ""
             },
             "require": {
@@ -4209,7 +4069,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "3.0-dev"
                 }
             },
             "autoload": {
@@ -4240,20 +4100,20 @@
             ],
             "description": "Symfony CssSelector Component",
             "homepage": "https://symfony.com",
-            "time": "2016-06-29 05:41:56"
+            "time": "2016-01-27 05:14:46"
         },
         {
             "name": "symfony/dom-crawler",
-            "version": "v3.1.4",
+            "version": "v3.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/dom-crawler.git",
-                "reference": "bb7395e8b1db3654de82b9f35d019958276de4d7"
+                "reference": "981c8edb4538f88ba976ed44bdcaa683fce3d6c6"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/bb7395e8b1db3654de82b9f35d019958276de4d7",
-                "reference": "bb7395e8b1db3654de82b9f35d019958276de4d7",
+                "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/981c8edb4538f88ba976ed44bdcaa683fce3d6c6",
+                "reference": "981c8edb4538f88ba976ed44bdcaa683fce3d6c6",
                 "shasum": ""
             },
             "require": {
@@ -4269,7 +4129,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "3.0-dev"
                 }
             },
             "autoload": {
@@ -4296,37 +4156,34 @@
             ],
             "description": "Symfony DomCrawler Component",
             "homepage": "https://symfony.com",
-            "time": "2016-08-05 08:37:39"
+            "time": "2016-02-28 16:24:34"
         },
         {
-            "name": "symfony/yaml",
-            "version": "v3.1.4",
+            "name": "symfony/polyfill-apcu",
+            "version": "v1.1.1",
             "source": {
                 "type": "git",
-                "url": "https://github.com/symfony/yaml.git",
-                "reference": "f291ed25eb1435bddbe8a96caaef16469c2a092d"
+                "url": "https://github.com/symfony/polyfill-apcu.git",
+                "reference": "0c901e4e65a2f7ece68f0fd249b56d6ad3adc214"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/yaml/zipball/f291ed25eb1435bddbe8a96caaef16469c2a092d",
-                "reference": "f291ed25eb1435bddbe8a96caaef16469c2a092d",
+                "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/0c901e4e65a2f7ece68f0fd249b56d6ad3adc214",
+                "reference": "0c901e4e65a2f7ece68f0fd249b56d6ad3adc214",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.5.9"
+                "php": ">=5.3.3"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "3.1-dev"
+                    "dev-master": "1.1-dev"
                 }
             },
             "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Yaml\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
+                "files": [
+                    "bootstrap.php"
                 ]
             },
             "notification-url": "https://packagist.org/downloads/",
@@ -4335,49 +4192,55 @@
             ],
             "authors": [
                 {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
                 },
                 {
                     "name": "Symfony Community",
                     "homepage": "https://symfony.com/contributors"
                 }
             ],
-            "description": "Symfony Yaml Component",
+            "description": "Symfony polyfill backporting apcu_* functions to lower PHP versions",
             "homepage": "https://symfony.com",
-            "time": "2016-09-02 02:12:52"
+            "keywords": [
+                "apcu",
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "time": "2016-03-03 16:49:40"
         },
         {
-            "name": "webmozart/assert",
-            "version": "1.1.0",
+            "name": "symfony/yaml",
+            "version": "v3.0.3",
             "source": {
                 "type": "git",
-                "url": "https://github.com/webmozart/assert.git",
-                "reference": "bb2d123231c095735130cc8f6d31385a44c7b308"
+                "url": "https://github.com/symfony/yaml.git",
+                "reference": "b5ba64cd67ecd6887f63868fa781ca094bd1377c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/webmozart/assert/zipball/bb2d123231c095735130cc8f6d31385a44c7b308",
-                "reference": "bb2d123231c095735130cc8f6d31385a44c7b308",
+                "url": "https://api.github.com/repos/symfony/yaml/zipball/b5ba64cd67ecd6887f63868fa781ca094bd1377c",
+                "reference": "b5ba64cd67ecd6887f63868fa781ca094bd1377c",
                 "shasum": ""
             },
             "require": {
-                "php": "^5.3.3|^7.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^4.6",
-                "sebastian/version": "^1.0.1"
+                "php": ">=5.5.9"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.2-dev"
+                    "dev-master": "3.0-dev"
                 }
             },
             "autoload": {
                 "psr-4": {
-                    "Webmozart\\Assert\\": "src/"
-                }
+                    "Symfony\\Component\\Yaml\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
             },
             "notification-url": "https://packagist.org/downloads/",
             "license": [
@@ -4385,22 +4248,24 @@
             ],
             "authors": [
                 {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@gmail.com"
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
                 }
             ],
-            "description": "Assertions to validate method input/output with nice error messages.",
-            "keywords": [
-                "assert",
-                "check",
-                "validate"
-            ],
-            "time": "2016-08-09 15:02:57"
+            "description": "Symfony Yaml Component",
+            "homepage": "https://symfony.com",
+            "time": "2016-02-23 15:16:06"
         }
     ],
     "aliases": [],
     "minimum-stability": "stable",
-    "stability-flags": [],
+    "stability-flags": {
+        "laravel/framework": 20
+    },
     "prefer-stable": false,
     "prefer-lowest": false,
     "platform": {
diff --git a/config/app.php b/config/app.php
index 9371dc8..f44deb7 100644
--- a/config/app.php
+++ b/config/app.php
@@ -4,26 +4,10 @@ return [
 
     /*
     |--------------------------------------------------------------------------
-    | Application Name
-    |--------------------------------------------------------------------------
-    |
-    | This value is the name of your application. This value is used when the
-    | framework needs to place the application's name in a notification or
-    | any other location as required by the application or its packages.
-    |
-    | NOTE: This version is overwritten inside app/Providers/AppServiceProvider.php
-    | and it will se application name defined from Portal settings page.
-    |
-    */
-
-    'name' => '',
-
-    /*
-    |--------------------------------------------------------------------------
     | Portal Version
     |--------------------------------------------------------------------------
     */
-    'version' => '1.2.0',
+    'version' => '1.1.2',
 
     /*
     |--------------------------------------------------------------------------
@@ -161,7 +145,6 @@ return [
         Illuminate\Foundation\Providers\FoundationServiceProvider::class,
         Illuminate\Hashing\HashServiceProvider::class,
         Illuminate\Mail\MailServiceProvider::class,
-        Illuminate\Notifications\NotificationServiceProvider::class,
         Illuminate\Pagination\PaginationServiceProvider::class,
         Illuminate\Pipeline\PipelineServiceProvider::class,
         Illuminate\Queue\QueueServiceProvider::class,
@@ -182,7 +165,7 @@ return [
         Portal\Providers\HtmlServiceProvider::class,
         Webpatser\Countries\CountriesServiceProvider::class,
         Intervention\Image\ImageServiceProvider::class,
-        Portal\Providers\EntrustServiceProvider::class,
+        Zizaco\Entrust\EntrustServiceProvider::class,
         anlutro\LaravelSettings\ServiceProvider::class,
 
         /*
@@ -190,7 +173,6 @@ return [
          */
         Portal\Providers\AppServiceProvider::class,
         Portal\Providers\AuthServiceProvider::class,
-        // App\Providers\BroadcastServiceProvider::class,
         Portal\Providers\EventServiceProvider::class,
         Portal\Providers\RouteServiceProvider::class,
         Portal\Services\Auth\TwoFactor\AuthyServiceProvider::class,
@@ -243,7 +225,6 @@ return [
         'URL'       => Illuminate\Support\Facades\URL::class,
         'Validator' => Illuminate\Support\Facades\Validator::class,
         'View'      => Illuminate\Support\Facades\View::class,
-        'Notification' => Illuminate\Support\Facades\Notification::class,
 
         'JsValidator' => Proengsoft\JsValidation\Facades\JsValidatorFacade::class,
         'Socialite' => Laravel\Socialite\Facades\Socialite::class,
@@ -255,7 +236,6 @@ return [
         'Settings' => anlutro\LaravelSettings\Facade::class,
         'Authy' => Portal\Services\Auth\TwoFactor\Facade::class,
 
-
     ],
 
 ];
diff --git a/config/database.php b/config/database.php
index b4e0677..4eac88e 100644
--- a/config/database.php
+++ b/config/database.php
@@ -60,7 +60,6 @@ return [
 
         'mysql' => [
             'driver'    => 'mysql',
-            'engine'    => 'InnoDB',
             'host'      => env('DB_HOST', 'localhost'),
             'database'  => env('DB_DATABASE', 'forge'),
             'username'  => env('DB_USERNAME', 'forge'),
diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php
index 8afd702..18ed5a1 100644
--- a/database/factories/ModelFactory.php
+++ b/database/factories/ModelFactory.php
@@ -19,7 +19,7 @@ $factory->define(Portal\User::class, function (Faker\Generator $faker, array $
 
     $countryId = isset($attrs['country_id'])
         ? $attrs['country_id']
-        : $faker->randomElement(Country::pluck('id')->toArray());
+        : $faker->randomElement(Country::lists('id')->toArray());
 
     return [
         'email' => $faker->email,
diff --git a/database/migrations/2015_09_19_191655_setup_countries_table.php b/database/migrations/2015_09_19_191655_setup_countries_table.php
index 9da3c9c..1adaf44 100644
--- a/database/migrations/2015_09_19_191655_setup_countries_table.php
+++ b/database/migrations/2015_09_19_191655_setup_countries_table.php
@@ -14,7 +14,7 @@ class SetupCountriesTable extends Migration {
 	{
 		// Creates the users table
 		Schema::create('countries', function(Blueprint $table)
-		{
+		{		    
 		    $table->increments('id');
 		    $table->string('capital', 255)->nullable();
 		    $table->string('citizenship', 255)->nullable();
diff --git a/database/migrations/2015_10_10_170827_create_users_table.php b/database/migrations/2015_10_10_170827_create_users_table.php
index 816b1e6..c5ff5f0 100644
--- a/database/migrations/2015_10_10_170827_create_users_table.php
+++ b/database/migrations/2015_10_10_170827_create_users_table.php
@@ -16,7 +16,7 @@ class CreateUsersTable extends Migration
         {
             $table->increments('id');
             $table->string('email')->unique();
-            $table->string('username')->nullable();
+            $table->string('username')->nullable()->unique();
             $table->string('password');
             $table->string('first_name')->nullable();
             $table->string('last_name')->nullable();
diff --git a/extra/auth.php b/extra/auth.php
index 0ddfd1c..be822aa 100644
--- a/extra/auth.php
+++ b/extra/auth.php
@@ -3,12 +3,8 @@
 require __DIR__.'/../bootstrap/autoload.php';
 $app = require_once __DIR__.'/../bootstrap/app.php';
 
-$request = Illuminate\Http\Request::capture();
-
 $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
-$kernel->pushMiddleware(\Portal\Http\Middleware\EncryptCookies::class);
-$kernel->pushMiddleware(\Illuminate\Session\Middleware\StartSession::class);
-$kernel->handle($request);
+$kernel->handle(Illuminate\Http\Request::capture());
 
 /**
  * Redirect to provided url
diff --git a/public/assets/.DS_Store b/public/assets/.DS_Store
index c7d5010..76e6ff7 100644
Binary files a/public/assets/.DS_Store and b/public/assets/.DS_Store differ
diff --git a/public/assets/css/app.css b/public/assets/css/app.css
index 1c49271..7b7b44c 100644
--- a/public/assets/css/app.css
+++ b/public/assets/css/app.css
@@ -1,10 +1,5 @@
-html, body {
-    width: 100%;
-    height: 100%;
-}
 
 body {
-    font-family: 'Roboto',Helvetica Neue,Helvetica,Arial,sans-serif;
     background-color: #f8f8f8;
 }
 
@@ -450,17 +445,6 @@ input[type="checkbox"] .styled:checked + label::after {
     color: #557799;
 }
 
-.img-circle.avatar {
-    border: 2px solid #ccc;
-    padding: 2px;
-}
-
-.nav-tabs > li.active > a,
-.nav-tabs > li.active > a:focus,
-.nav-tabs > li.active > a:hover {
-    border-top: 2px solid #337ab7;
-}
-
 /* --------------------------------------------------
 :: Page Wrapper
 -------------------------------------------------- */
@@ -497,14 +481,7 @@ body.sidebar-collapse #page-wrapper {
     margin-left: 0px;
 }
 
-@media (min-width: 1200px) and (max-width: 1800px) {
-    .panel-widget .panel-heading {
-        height: 112px;
-    }
-}
-
-.sidebar, #page-wrapper {
-    min-height: 100%;
+.sidebar, #page-wrapper, .panel-widget .panel-heading {
     transition: all 0.4s ease 0s;
 }
 
@@ -596,11 +573,6 @@ body.sidebar-collapse #page-wrapper {
 }
 
 @media (max-width: 767px) {
-
-    #page-wrapper {
-        margin-top: 100px;
-    }
-
     .sidebar-open #page-wrapper {
         -webkit-transform: translate(220px, 0);
         -ms-transform: translate(220px, 0);
diff --git a/public/assets/js/as/app.js b/public/assets/js/as/app.js
index ff71ef6..ec53e4a 100644
--- a/public/assets/js/as/app.js
+++ b/public/assets/js/as/app.js
@@ -17,12 +17,48 @@ as.hideNotifications = function () {
     })
 };
 
+as.adjustPage = function () {
+    /**
+     * Page top offset, used for setting appropriate top offset
+     * for page content when we are resizing the page (or open it on small screen).
+     * @type {number}
+     */
+    var topOffset = 0;
+
+    // Current width of our viewport.
+    var width = window.innerWidth > 0
+        ? window.innerWidth
+        : screen.width;
+
+    // If width is smaller than 768px, we will adjust page top offset.
+    if (width < 768) {
+        topOffset = 100;
+    }
+
+    // Current viewport height
+    var height = window.innerHeight > 0
+        ? window.innerHeight
+        : screen.height;
+
+    height = height - topOffset;
+
+    if (height < 1) {
+        height = 1;
+    }
+
+    $("#page-wrapper").css("margin-top", (topOffset) + "px");
+
+    if (height > topOffset) {
+        $("#page-wrapper").css("min-height", (height) + "px");
+    }
+};
+
 as.init = function () {
 
-    var sideMenu = $("#side-menu");
+    $(window).bind("load resize", as.adjustPage);
 
-    if (sideMenu.length) {
-        sideMenu.metisMenu({
+    if ($("#side-menu").length) {
+        $("#side-menu").metisMenu({
             toggle: false,
             activeClass: 'active'
         });
diff --git a/public/assets/js/as/dashboard-admin.js b/public/assets/js/as/dashboard-admin.js
index 5d4cb95..791fbab 100644
--- a/public/assets/js/as/dashboard-admin.js
+++ b/public/assets/js/as/dashboard-admin.js
@@ -1,5 +1,16 @@
 as.dashboard = {};
 
+as.dashboard.adjustWidgetsHeight = function () {
+    var maxHeight = 0;
+    $(".panel-widget .panel-heading").height('auto');
+    $(".panel-widget .panel-heading").each(function () {
+        if ($(this).height() > maxHeight) {
+            maxHeight = $(this).height();
+        }
+    });
+    $(".panel-widget .panel-heading").height(maxHeight);
+};
+
 as.dashboard.initChart = function () {
     var data = {
         labels: months,
@@ -26,5 +37,6 @@ as.dashboard.initChart = function () {
 };
 
 $(document).ready(function () {
+    as.dashboard.adjustWidgetsHeight();
     as.dashboard.initChart();
 });
\ No newline at end of file
diff --git a/public/web.config b/public/web.config
deleted file mode 100644
index 624c176..0000000
--- a/public/web.config
+++ /dev/null
@@ -1,23 +0,0 @@
-<configuration>
-  <system.webServer>
-    <rewrite>
-      <rules>
-        <rule name="Imported Rule 1" stopProcessing="true">
-          <match url="^(.*)/$" ignoreCase="false" />
-          <conditions>
-            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
-          </conditions>
-          <action type="Redirect" redirectType="Permanent" url="/{R:1}" />
-        </rule>
-        <rule name="Imported Rule 2" stopProcessing="true">
-          <match url="^" ignoreCase="false" />
-          <conditions>
-            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
-            <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
-          </conditions>
-          <action type="Rewrite" url="index.php" />
-        </rule>
-      </rules>
-    </rewrite>
-  </system.webServer>
-</configuration>
diff --git a/resources/lang/en/app.php b/resources/lang/en/app.php
index 4bee34e..b83f0bd 100644
--- a/resources/lang/en/app.php
+++ b/resources/lang/en/app.php
@@ -6,7 +6,7 @@ return [
     'active_sessions' => 'Active Sessions',
     'copyright' => 'Copyright',
     'users' => 'Users',
-    'users_sm' => 'users',
+    'users_sm' => 'korisnika',
     'roles_and_permissions' => 'Roles & Permissions',
     'roles' => 'Roles',
     'permissions' => 'Permissions',
@@ -305,22 +305,16 @@ return [
 
     //Emails
     'hi' => 'Hi',
-    'registration_confirmation' => 'Registration Confirmation',
     'new_user_was_registered_on' => 'New user was just registered on :app website.',
     'website' => 'website',
     'to_view_details_visit_link_below' => 'To view user details just visit the link below:',
     'many_thanks' => 'Many Thanks',
-    'request_for_password_reset_made' => 'You are receiving this email because we received a password reset request for your account.',
-    'if_you_did_not_requested' => 'If you did not request a password reset, no further action is required.',
+    'request_for_password_reset_made' => 'A request has been made to reset your password.',
     'click_on_link_below' => 'Please click on this link below in order to reset your password:',
-    'if_you_cant_click' => 'If you’re having trouble clicking the ":button" button, copy and paste the URL below into your web browser:',
+    'if_you_cant_click' => 'If you can\'t click on that link, just copy and paste following url in your browser\'s address bar:',
     'thank_you_for_registering' => 'Thank you for registering on :app website.',
     'confirm_email_on_link_below' => 'Please confirm your email by clicking on the link below:',
     'confirm_email' => 'Confirm Email',
-    'new_user_registration' => 'New User Registration',
-    'thank_you_for_using_our_app' => 'Thank you for using our application.',
-    'all_rights_reserved' => 'All rights reserved.',
-    'regards' => 'Regards',
 
     'months' => [
         'January' => 'January',
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index edd1940..0dd4810 100644
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -10,8 +10,6 @@
 
     <title>@yield('page-title') | {{ settings('app_name') }}</title>
 
-    <link href="https://fonts.googleapis.com/css?family=Roboto:400,300,100,500,700,900" rel="stylesheet" type="text/css">
-
     <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ url('assets/img/icons/apple-touch-icon-144x144.png') }}" />
     <link rel="apple-touch-icon-precomposed" sizes="152x152" href="{{ url('assets/img/icons/apple-touch-icon-152x152.png') }}" />
     <link rel="icon" type="image/png" href="{{ url('assets/img/icons/favicon-32x32.png') }}" sizes="32x32" />
@@ -45,7 +43,7 @@
                 <ul class="nav navbar-nav navbar-right">
                     <li class="dropdown">
                         <a href="#" class="dropdown-toggle avatar" data-toggle="dropdown">
-                            <img alt="image" class="img-circle avatar" src="{{ Auth::user()->present()->avatar }}">
+                            <img alt="image" class="img-circle" src="{{ Auth::user()->present()->avatar }}">
                             {{ Auth::user()->present()->name }}
                             <b class="caret"></b>
                         </a>
diff --git a/resources/views/partials/sidebar.blade.php b/resources/views/partials/sidebar.blade.php
index 52e57e7..1052392 100644
--- a/resources/views/partials/sidebar.blade.php
+++ b/resources/views/partials/sidebar.blade.php
@@ -4,7 +4,7 @@
             <li class="sidebar-avatar">
                 <div class="dropdown">
                     <div>
-                        <img alt="image" class="img-circle avatar" width="100" src="{{ Auth::user()->present()->avatar }}">
+                        <img alt="image" class="img-circle" width="100" src="{{ Auth::user()->present()->avatar }}">
                     </div>
                     <div class="name"><strong>{{ Auth::user()->present()->nameOrEmail }}</strong></div>
                 </div>
diff --git a/resources/views/settings/partials/auth.blade.php b/resources/views/settings/partials/auth.blade.php
index 575c85e..4845a6c 100644
--- a/resources/views/settings/partials/auth.blade.php
+++ b/resources/views/settings/partials/auth.blade.php
@@ -37,8 +37,7 @@
                       data-placement="top"
                       title="@lang('app.number_of_minutes')"></span>
             </label>
-            <input type="text" name="login_reset_token_lifetime"
-                   class="form-control" value="{{ settings('login_reset_token_lifetime', 30) }}">
+            <input type="text" name="login_reset_token_lifetime" class="form-control" value="{{ settings('login_reset_token_lifetime', 30) }}">
         </div>
 
         <button type="submit" class="btn btn-primary">
diff --git a/resources/views/user/partials/avatar.blade.php b/resources/views/user/partials/avatar.blade.php
index 46eab63..fd8c26a 100644
--- a/resources/views/user/partials/avatar.blade.php
+++ b/resources/views/user/partials/avatar.blade.php
@@ -8,7 +8,7 @@
         </div>
         <div id="avatar"></div>
         <div>
-            <img class="avatar avatar-preview img-circle" src="{{ $edit ? $user->present()->avatar : url('assets/img/profile.png') }}">
+            <img class="avatar-preview img-circle" src="{{ $edit ? $user->present()->avatar : url('assets/img/profile.png') }}">
             <div id="change-picture" class="btn btn-default btn-block" data-toggle="modal" data-target="#choose-modal">
                 <i class="fa fa-camera"></i>
                 @lang('app.change_photo')
diff --git a/resources/views/vendor/notifications/email-plain.blade.php b/resources/views/vendor/notifications/email-plain.blade.php
deleted file mode 100644
index acefa65..0000000
--- a/resources/views/vendor/notifications/email-plain.blade.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-if (! empty($greeting)) {
-    echo $greeting, "\n\n";
-} else {
-    echo $level == 'error' ? 'Whoops!' : 'Hello!', "\n\n";
-}
-
-if (! empty($introLines)) {
-    echo implode("\n", $introLines), "\n\n";
-}
-
-if (isset($actionText)) {
-    echo "{$actionText}: {$actionUrl}", "\n\n";
-}
-
-if (! empty($outroLines)) {
-    echo implode("\n", $outroLines), "\n\n";
-}
-
-echo 'Regards,', "\n";
-echo config('app.name'), "\n";
diff --git a/resources/views/vendor/notifications/email.blade.php b/resources/views/vendor/notifications/email.blade.php
deleted file mode 100644
index c6d0ab0..0000000
--- a/resources/views/vendor/notifications/email.blade.php
+++ /dev/null
@@ -1,193 +0,0 @@
-<!DOCTYPE html>
-<html>
-
-<head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-
-    <style type="text/css" rel="stylesheet" media="all">
-        /* Media Queries */
-        @media only screen and (max-width: 500px) {
-            .button {
-                width: 100% !important;
-            }
-        }
-    </style>
-</head>
-
-<?php
-
-$style = [
-    /* Layout ------------------------------ */
-
-    'body' => 'margin: 0; padding: 0; width: 100%; background-color: #F2F4F6;',
-    'email-wrapper' => 'width: 100%; margin: 0; padding: 0; background-color: #F2F4F6; border-top: 5px solid #1c8966;',
-
-    /* Masthead ----------------------- */
-
-    'email-masthead' => 'padding: 25px 0; text-align: center;',
-    'email-masthead_name' => 'font-size: 16px; font-weight: bold; color: #2F3133; text-decoration: none; text-shadow: 0 1px 0 white;',
-
-    'email-body' => 'width: 100%; margin: 0; padding: 0; border-top: 1px solid #EDEFF2; border-bottom: 1px solid #EDEFF2; background-color: #FFF;',
-    'email-body_inner' => 'width: auto; max-width: 570px; margin: 0 auto; padding: 0;',
-    'email-body_cell' => 'padding: 35px;',
-
-    'email-footer' => 'width: auto; max-width: 570px; margin: 0 auto; padding: 0; text-align: center;',
-    'email-footer_cell' => 'color: #AEAEAE; padding: 35px; text-align: center;',
-
-    /* Body ------------------------------ */
-
-    'body_action' => 'width: 100%; margin: 30px auto; padding: 0; text-align: center;',
-    'body_sub' => 'margin-top: 25px; padding-top: 25px; border-top: 1px solid #EDEFF2;',
-
-    /* Type ------------------------------ */
-
-    'anchor' => 'color: #3869D4;',
-    'header-1' => 'margin-top: 0; color: #2F3133; font-size: 19px; font-weight: bold; text-align: left;',
-    'paragraph' => 'margin-top: 0; color: #74787E; font-size: 16px; line-height: 1.5em;',
-    'paragraph-sub' => 'margin-top: 0; color: #74787E; font-size: 12px; line-height: 1.5em;',
-    'paragraph-center' => 'text-align: center;',
-
-    /* Buttons ------------------------------ */
-
-    'button' => 'display: block; display: inline-block; width: 200px; min-height: 20px; padding: 10px;
-                 background-color: #3869D4; border-radius: 3px; color: #ffffff; font-size: 15px; line-height: 25px;
-                 text-align: center; text-decoration: none; -webkit-text-size-adjust: none;',
-
-    'button--green' => 'background-color: #5cb85c;',
-    'button--red' => 'background-color: #dc4d2f;',
-    'button--blue' => 'background-color: #3869D4;',
-    'button--default' => 'background-color: #1c8966;'
-];
-?>
-
-<?php $fontFamily = 'font-family: Arial, \'Helvetica Neue\', Helvetica, sans-serif;'; ?>
-
-<body style="{{ $style['body'] }}">
-    <table width="100%" cellpadding="0" cellspacing="0">
-        <tr>
-            <td style="{{ $style['email-wrapper'] }}" align="center">
-                <table width="100%" cellpadding="0" cellspacing="0">
-                    <!-- Logo -->
-                    <tr>
-                        <td style="{{ $style['email-masthead'] }}">
-                            <a style="{{ $fontFamily }} {{ $style['email-masthead_name'] }}" href="{{ url('/') }}" target="_blank">
-                                <img src="{{ url('assets/img/portal-logo.png') }}" alt="Portal" height="60">
-                                {{--{{ config('app.name') }}--}}
-                            </a>
-                        </td>
-                    </tr>
-
-                    <!-- Email Body -->
-                    <tr>
-                        <td style="{{ $style['email-body'] }}" width="100%">
-                            <table style="{{ $style['email-body_inner'] }}" align="center" width="570" cellpadding="0" cellspacing="0">
-                                <tr>
-                                    <td style="{{ $fontFamily }} {{ $style['email-body_cell'] }}">
-                                        <!-- Greeting -->
-                                        <h1 style="{{ $style['header-1'] }}">
-                                            @if (! empty($greeting))
-                                                {{ $greeting }}
-                                            @else
-                                                @if ($level == 'error')
-                                                    Whoops!
-                                                @else
-                                                    Hello!
-                                                @endif
-                                            @endif
-                                        </h1>
-
-                                        <!-- Intro -->
-                                        @foreach ($introLines as $line)
-                                            <p style="{{ $style['paragraph'] }}">
-                                                {{ $line }}
-                                            </p>
-                                        @endforeach
-
-                                        <!-- Action Button -->
-                                        @if (isset($actionText))
-                                            <table style="{{ $style['body_action'] }}" align="center" width="100%" cellpadding="0" cellspacing="0">
-                                                <tr>
-                                                    <td align="center">
-                                                        <?php
-                                                            switch ($level) {
-                                                                case 'success':
-                                                                    $actionColor = 'button--green';
-                                                                    break;
-                                                                case 'error':
-                                                                    $actionColor = 'button--red';
-                                                                    break;
-                                                                default:
-                                                                    $actionColor = 'button--default';
-                                                            }
-                                                        ?>
-
-                                                        <a href="{{ $actionUrl }}"
-                                                            style="{{ $fontFamily }} {{ $style['button'] }} {{ $style[$actionColor] }}"
-                                                            class="button"
-                                                            target="_blank">
-                                                            {{ $actionText }}
-                                                        </a>
-                                                    </td>
-                                                </tr>
-                                            </table>
-                                        @endif
-
-                                        <!-- Outro -->
-                                        @foreach ($outroLines as $line)
-                                            <p style="{{ $style['paragraph'] }}">
-                                                {{ $line }}
-                                            </p>
-                                        @endforeach
-
-                                        <!-- Salutation -->
-                                        <p style="{{ $style['paragraph'] }}">
-                                            @lang('app.regards'),<br>{{ config('app.name') }}
-                                        </p>
-
-                                        <!-- Sub Copy -->
-                                        @if (isset($actionText))
-                                            <table style="{{ $style['body_sub'] }}">
-                                                <tr>
-                                                    <td style="{{ $fontFamily }}">
-                                                        <p style="{{ $style['paragraph-sub'] }}">
-                                                            @lang('app.if_you_cant_click', ['button' => $actionText])
-                                                        </p>
-
-                                                        <p style="{{ $style['paragraph-sub'] }}">
-                                                            <a style="{{ $style['anchor'] }}" href="{{ $actionUrl }}" target="_blank">
-                                                                {{ $actionUrl }}
-                                                            </a>
-                                                        </p>
-                                                    </td>
-                                                </tr>
-                                            </table>
-                                        @endif
-                                    </td>
-                                </tr>
-                            </table>
-                        </td>
-                    </tr>
-
-                    <!-- Footer -->
-                    <tr>
-                        <td>
-                            <table style="{{ $style['email-footer'] }}" align="center" width="570" cellpadding="0" cellspacing="0">
-                                <tr>
-                                    <td style="{{ $fontFamily }} {{ $style['email-footer_cell'] }}">
-                                        <p style="{{ $style['paragraph-sub'] }}">
-                                            &copy; {{ date('Y') }}
-                                            <a style="{{ $style['anchor'] }}" href="{{ url('/') }}" target="_blank">{{ config('app.name') }}</a>.
-                                            @lang('app.all_rights_reserved')
-                                        </p>
-                                    </td>
-                                </tr>
-                            </table>
-                        </td>
-                    </tr>
-                </table>
-            </td>
-        </tr>
-    </table>
-</body>
-</html>
diff --git a/resources/views/vendor/pagination/bootstrap-4.blade.php b/resources/views/vendor/pagination/bootstrap-4.blade.php
deleted file mode 100644
index 180bd8b..0000000
--- a/resources/views/vendor/pagination/bootstrap-4.blade.php
+++ /dev/null
@@ -1,36 +0,0 @@
-@if ($paginator->hasPages())
-    <ul class="pagination">
-        <!-- Previous Page Link -->
-        @if ($paginator->onFirstPage())
-            <li class="page-item disabled"><span class="page-link">&laquo;</span></li>
-        @else
-            <li class="page-item"><a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev">&laquo;</a></li>
-        @endif
-
-        <!-- Pagination Elements -->
-        @foreach ($elements as $element)
-            <!-- "Three Dots" Separator -->
-            @if (is_string($element))
-                <li class="page-item disabled"><span class="page-link">{{ $element }}</span></li>
-            @endif
-
-            <!-- Array Of Links -->
-            @if (is_array($element))
-                @foreach ($element as $page => $url)
-                    @if ($page == $paginator->currentPage())
-                        <li class="page-item active"><span class="page-link">{{ $page }}</span></li>
-                    @else
-                        <li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
-                    @endif
-                @endforeach
-            @endif
-        @endforeach
-
-        <!-- Next Page Link -->
-        @if ($paginator->hasMorePages())
-            <li class="page-item"><a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next">&raquo;</a></li>
-        @else
-            <li class="page-item disabled"><span class="page-link">&raquo;</span></li>
-        @endif
-    </ul>
-@endif
diff --git a/resources/views/vendor/pagination/default.blade.php b/resources/views/vendor/pagination/default.blade.php
deleted file mode 100644
index 4f6dd71..0000000
--- a/resources/views/vendor/pagination/default.blade.php
+++ /dev/null
@@ -1,36 +0,0 @@
-@if ($paginator->hasPages())
-    <ul class="pagination">
-        <!-- Previous Page Link -->
-        @if ($paginator->onFirstPage())
-            <li class="disabled"><span>&laquo;</span></li>
-        @else
-            <li><a href="{{ $paginator->previousPageUrl() }}" rel="prev">&laquo;</a></li>
-        @endif
-
-        <!-- Pagination Elements -->
-        @foreach ($elements as $element)
-            <!-- "Three Dots" Separator -->
-            @if (is_string($element))
-                <li class="disabled"><span>{{ $element }}</span></li>
-            @endif
-
-            <!-- Array Of Links -->
-            @if (is_array($element))
-                @foreach ($element as $page => $url)
-                    @if ($page == $paginator->currentPage())
-                        <li class="active"><span>{{ $page }}</span></li>
-                    @else
-                        <li><a href="{{ $url }}">{{ $page }}</a></li>
-                    @endif
-                @endforeach
-            @endif
-        @endforeach
-
-        <!-- Next Page Link -->
-        @if ($paginator->hasMorePages())
-            <li><a href="{{ $paginator->nextPageUrl() }}" rel="next">&raquo;</a></li>
-        @else
-            <li class="disabled"><span>&raquo;</span></li>
-        @endif
-    </ul>
-@endif
diff --git a/resources/views/vendor/pagination/simple-bootstrap-4.blade.php b/resources/views/vendor/pagination/simple-bootstrap-4.blade.php
deleted file mode 100644
index 1736cf3..0000000
--- a/resources/views/vendor/pagination/simple-bootstrap-4.blade.php
+++ /dev/null
@@ -1,17 +0,0 @@
-@if ($paginator->hasPages())
-    <ul class="pagination">
-        <!-- Previous Page Link -->
-        @if ($paginator->onFirstPage())
-            <li class="page-item disabled"><span class="page-link">&laquo;</span></li>
-        @else
-            <li class="page-item"><a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev">&laquo;</a></li>
-        @endif
-
-        <!-- Next Page Link -->
-        @if ($paginator->hasMorePages())
-            <li class="page-item"><a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next">&raquo;</a></li>
-        @else
-            <li class="page-item disabled"><span class="page-link">&raquo;</span></li>
-        @endif
-    </ul>
-@endif
diff --git a/resources/views/vendor/pagination/simple-default.blade.php b/resources/views/vendor/pagination/simple-default.blade.php
deleted file mode 100644
index 98bef08..0000000
--- a/resources/views/vendor/pagination/simple-default.blade.php
+++ /dev/null
@@ -1,17 +0,0 @@
-@if ($paginator->hasPages())
-    <ul class="pagination">
-        <!-- Previous Page Link -->
-        @if ($paginator->onFirstPage())
-            <li class="disabled"><span>&laquo;</span></li>
-        @else
-            <li><a href="{{ $paginator->previousPageUrl() }}" rel="prev">&laquo;</a></li>
-        @endif
-
-        <!-- Next Page Link -->
-        @if ($paginator->hasMorePages())
-            <li><a href="{{ $paginator->nextPageUrl() }}" rel="next">&raquo;</a></li>
-        @else
-            <li class="disabled"><span>&raquo;</span></li>
-        @endif
-    </ul>
-@endif
diff --git a/routes/api.php b/routes/api.php
deleted file mode 100644
index 51535fb..0000000
--- a/routes/api.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/*
-|--------------------------------------------------------------------------
-| API Routes
-|--------------------------------------------------------------------------
-|
-| Here is where you can register API routes for your application. These
-| routes are loaded by the RouteServiceProvider within a group which
-| is assigned the "api" middleware group. Enjoy building your API!
-|
-*/
diff --git a/routes/console.php b/routes/console.php
deleted file mode 100644
index 75dd0cd..0000000
--- a/routes/console.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-use Illuminate\Foundation\Inspiring;
-
-/*
-|--------------------------------------------------------------------------
-| Console Routes
-|--------------------------------------------------------------------------
-|
-| This file is where you may define all of your Closure based console
-| commands. Each Closure is bound to a command instance allowing a
-| simple approach to interacting with each command's IO methods.
-|
-*/
-
-Artisan::command('inspire', function () {
-    $this->comment(Inspiring::quote());
-})->describe('Display an inspiring quote');
diff --git a/routes/web.php b/routes/web.php
deleted file mode 100644
index 22203c5..0000000
--- a/routes/web.php
+++ /dev/null
@@ -1,378 +0,0 @@
-<?php
-
-/**
- * Authentication
- */
-
-Route::get('login', 'Auth\AuthController@getLogin');
-Route::post('login', 'Auth\AuthController@postLogin');
-
-Route::get('logout', [
-    'as' => 'auth.logout',
-    'uses' => 'Auth\AuthController@getLogout'
-]);
-
-// Allow registration routes only if registration is enabled.
-if (settings('reg_enabled')) {
-    Route::get('register', 'Auth\AuthController@getRegister');
-    Route::post('register', 'Auth\AuthController@postRegister');
-    Route::get('register/confirmation/{token}', [
-        'as' => 'register.confirm-email',
-        'uses' => 'Auth\AuthController@confirmEmail'
-    ]);
-}
-
-// Register password reset routes only if it is enabled inside website settings.
-if (settings('forgot_password')) {
-    Route::get('password/remind', 'Auth\PasswordController@forgotPassword');
-    Route::post('password/remind', 'Auth\PasswordController@sendPasswordReminder');
-    Route::get('password/reset/{token}', 'Auth\PasswordController@getReset');
-    Route::post('password/reset', 'Auth\PasswordController@postReset');
-}
-
-/**
- * Two-Factor Authentication
- */
-if (settings('2fa.enabled')) {
-    Route::get('auth/two-factor-authentication', [
-        'as' => 'auth.token',
-        'uses' => 'Auth\AuthController@getToken'
-    ]);
-
-    Route::post('auth/two-factor-authentication', [
-        'as' => 'auth.token.validate',
-        'uses' => 'Auth\AuthController@postToken'
-    ]);
-}
-
-/**
- * Social Login
- */
-Route::get('auth/{provider}/login', [
-    'as' => 'social.login',
-    'uses' => 'Auth\SocialAuthController@redirectToProvider',
-    'middleware' => 'social.login'
-]);
-
-Route::get('auth/{provider}/callback', 'Auth\SocialAuthController@handleProviderCallback');
-
-Route::get('auth/twitter/email', 'Auth\SocialAuthController@getTwitterEmail');
-Route::post('auth/twitter/email', 'Auth\SocialAuthController@postTwitterEmail');
-
-/**
- * Other
- */
-
-Route::get('/', [
-    'as' => 'dashboard',
-    'uses' => 'DashboardController@index'
-]);
-
-/**
- * User Profile
- */
-
-Route::get('profile', [
-    'as' => 'profile',
-    'uses' => 'ProfileController@index'
-]);
-
-Route::get('profile/activity', [
-    'as' => 'profile.activity',
-    'uses' => 'ProfileController@activity'
-]);
-
-Route::put('profile/details/update', [
-    'as' => 'profile.update.details',
-    'uses' => 'ProfileController@updateDetails'
-]);
-
-Route::post('profile/avatar/update', [
-    'as' => 'profile.update.avatar',
-    'uses' => 'ProfileController@updateAvatar'
-]);
-
-Route::post('profile/avatar/update/external', [
-    'as' => 'profile.update.avatar-external',
-    'uses' => 'ProfileController@updateAvatarExternal'
-]);
-
-Route::put('profile/login-details/update', [
-    'as' => 'profile.update.login-details',
-    'uses' => 'ProfileController@updateLoginDetails'
-]);
-
-Route::put('profile/social-networks/update', [
-    'as' => 'profile.update.social-networks',
-    'uses' => 'ProfileController@updateSocialNetworks'
-]);
-
-Route::post('profile/two-factor/enable', [
-    'as' => 'profile.two-factor.enable',
-    'uses' => 'ProfileController@enableTwoFactorAuth'
-]);
-
-Route::post('profile/two-factor/disable', [
-    'as' => 'profile.two-factor.disable',
-    'uses' => 'ProfileController@disableTwoFactorAuth'
-]);
-
-Route::get('profile/sessions', [
-    'as' => 'profile.sessions',
-    'uses' => 'ProfileController@sessions'
-]);
-
-Route::delete('profile/sessions/{session}/invalidate', [
-    'as' => 'profile.sessions.invalidate',
-    'uses' => 'ProfileController@invalidateSession'
-]);
-
-/**
- * User Management
- */
-Route::get('user', [
-    'as' => 'user.list',
-    'uses' => 'UsersController@index'
-]);
-
-Route::get('user/create', [
-    'as' => 'user.create',
-    'uses' => 'UsersController@create'
-]);
-
-Route::post('user/create', [
-    'as' => 'user.store',
-    'uses' => 'UsersController@store'
-]);
-
-Route::get('user/{user}/show', [
-    'as' => 'user.show',
-    'uses' => 'UsersController@view'
-]);
-
-Route::get('user/{user}/edit', [
-    'as' => 'user.edit',
-    'uses' => 'UsersController@edit'
-]);
-
-Route::put('user/{user}/update/details', [
-    'as' => 'user.update.details',
-    'uses' => 'UsersController@updateDetails'
-]);
-
-Route::put('user/{user}/update/login-details', [
-    'as' => 'user.update.login-details',
-    'uses' => 'UsersController@updateLoginDetails'
-]);
-
-Route::delete('user/{user}/delete', [
-    'as' => 'user.delete',
-    'uses' => 'UsersController@delete'
-]);
-
-Route::post('user/{user}/update/avatar', [
-    'as' => 'user.update.avatar',
-    'uses' => 'UsersController@updateAvatar'
-]);
-
-Route::post('user/{user}/update/avatar/external', [
-    'as' => 'user.update.avatar.external',
-    'uses' => 'UsersController@updateAvatarExternal'
-]);
-
-Route::post('user/{user}/update/social-networks', [
-    'as' => 'user.update.socials',
-    'uses' => 'UsersController@updateSocialNetworks'
-]);
-
-Route::get('user/{user}/sessions', [
-    'as' => 'user.sessions',
-    'uses' => 'UsersController@sessions'
-]);
-
-Route::delete('user/{user}/sessions/{session}/invalidate', [
-    'as' => 'user.sessions.invalidate',
-    'uses' => 'UsersController@invalidateSession'
-]);
-
-Route::post('user/{user}/two-factor/enable', [
-    'as' => 'user.two-factor.enable',
-    'uses' => 'UsersController@enableTwoFactorAuth'
-]);
-
-Route::post('user/{user}/two-factor/disable', [
-    'as' => 'user.two-factor.disable',
-    'uses' => 'UsersController@disableTwoFactorAuth'
-]);
-
-/**
- * Roles & Permissions
- */
-
-Route::get('role', [
-    'as' => 'role.index',
-    'uses' => 'RolesController@index'
-]);
-
-Route::get('role/create', [
-    'as' => 'role.create',
-    'uses' => 'RolesController@create'
-]);
-
-Route::post('role/store', [
-    'as' => 'role.store',
-    'uses' => 'RolesController@store'
-]);
-
-Route::get('role/{role}/edit', [
-    'as' => 'role.edit',
-    'uses' => 'RolesController@edit'
-]);
-
-Route::put('role/{role}/update', [
-    'as' => 'role.update',
-    'uses' => 'RolesController@update'
-]);
-
-Route::delete('role/{role}/delete', [
-    'as' => 'role.delete',
-    'uses' => 'RolesController@delete'
-]);
-
-
-Route::post('permission/save', [
-    'as' => 'permission.save',
-    'uses' => 'PermissionsController@saveRolePermissions'
-]);
-
-Route::resource('permission', 'PermissionsController');
-
-/**
- * Settings
- */
-
-Route::get('settings', [
-    'as' => 'settings.general',
-    'uses' => 'SettingsController@general',
-    'middleware' => 'permission:settings.general'
-]);
-
-Route::post('settings/general', [
-    'as' => 'settings.general.update',
-    'uses' => 'SettingsController@update',
-    'middleware' => 'permission:settings.general'
-]);
-
-Route::get('settings/auth', [
-    'as' => 'settings.auth',
-    'uses' => 'SettingsController@auth',
-    'middleware' => 'permission:settings.auth'
-]);
-
-Route::post('settings/auth', [
-    'as' => 'settings.auth.update',
-    'uses' => 'SettingsController@update',
-    'middleware' => 'permission:settings.auth'
-]);
-
-// Only allow managing 2FA if AUTHY_KEY is defined inside .env file
-if (env('AUTHY_KEY')) {
-    Route::post('settings/auth/2fa/enable', [
-        'as' => 'settings.auth.2fa.enable',
-        'uses' => 'SettingsController@enableTwoFactor',
-        'middleware' => 'permission:settings.auth'
-    ]);
-
-    Route::post('settings/auth/2fa/disable', [
-        'as' => 'settings.auth.2fa.disable',
-        'uses' => 'SettingsController@disableTwoFactor',
-        'middleware' => 'permission:settings.auth'
-    ]);
-}
-
-Route::post('settings/auth/registration/captcha/enable', [
-    'as' => 'settings.registration.captcha.enable',
-    'uses' => 'SettingsController@enableCaptcha',
-    'middleware' => 'permission:settings.auth'
-]);
-
-Route::post('settings/auth/registration/captcha/disable', [
-    'as' => 'settings.registration.captcha.disable',
-    'uses' => 'SettingsController@disableCaptcha',
-    'middleware' => 'permission:settings.auth'
-]);
-
-Route::get('settings/notifications', [
-    'as' => 'settings.notifications',
-    'uses' => 'SettingsController@notifications',
-    'middleware' => 'permission:settings.notifications'
-]);
-
-Route::post('settings/notifications', [
-    'as' => 'settings.notifications.update',
-    'uses' => 'SettingsController@update',
-    'middleware' => 'permission:settings.notifications'
-]);
-
-/**
- * Activity Log
- */
-
-Route::get('activity', [
-    'as' => 'activity.index',
-    'uses' => 'ActivityController@index'
-]);
-
-Route::get('activity/user/{user}/log', [
-    'as' => 'activity.user',
-    'uses' => 'ActivityController@userActivity'
-]);
-
-/**
- * Installation
- */
-
-$router->get('install', [
-    'as' => 'install.start',
-    'uses' => 'InstallController@index'
-]);
-
-$router->get('install/requirements', [
-    'as' => 'install.requirements',
-    'uses' => 'InstallController@requirements'
-]);
-
-$router->get('install/permissions', [
-    'as' => 'install.permissions',
-    'uses' => 'InstallController@permissions'
-]);
-
-$router->get('install/database', [
-    'as' => 'install.database',
-    'uses' => 'InstallController@databaseInfo'
-]);
-
-$router->get('install/start-installation', [
-    'as' => 'install.installation',
-    'uses' => 'InstallController@installation'
-]);
-
-$router->post('install/start-installation', [
-    'as' => 'install.installation',
-    'uses' => 'InstallController@installation'
-]);
-
-$router->post('install/install-app', [
-    'as' => 'install.install',
-    'uses' => 'InstallController@install'
-]);
-
-$router->get('install/complete', [
-    'as' => 'install.complete',
-    'uses' => 'InstallController@complete'
-]);
-
-$router->get('install/error', [
-    'as' => 'install.error',
-    'uses' => 'InstallController@error'
-]);
\ No newline at end of file
diff --git a/storage/settings.json b/storage/settings.json
index 245ebf4..0298761 100644
--- a/storage/settings.json
+++ b/storage/settings.json
@@ -1 +1 @@
-{"remember_me":true,"notifications_signup_email":"1","forgot_password":"1","login_reset_token_lifetime":"30","throttle_enabled":true,"throttle_attempts":3,"throttle_lockout_time":2,"reg_enabled":"1","reg_email_confirmation":"1","2fa":{"enabled":true},"app_name":"Portal","registration":{"captcha":{"enabled":false}},"tos":"1"}
\ No newline at end of file
+{"remember_me":"1","notifications_signup_email":"0","forgot_password":"1","login_reset_token_lifetime":"30","throttle_enabled":true,"throttle_attempts":3,"throttle_lockout_time":2,"reg_enabled":"1","reg_email_confirmation":"1","2fa":{"enabled":true},"app_name":"Portal","registration":{"captcha":{"enabled":false}},"tos":"1"}
\ No newline at end of file
diff --git a/tests/functional/FunctionalTestCase.php b/tests/functional/FunctionalTestCase.php
index 06d01fa..c13adf9 100644
--- a/tests/functional/FunctionalTestCase.php
+++ b/tests/functional/FunctionalTestCase.php
@@ -11,8 +11,6 @@ class FunctionalTestCase extends TestCase
 
     protected $seed = true;
 
-    protected $settingsModified = [];
-
     public function setUp()
     {
         $this->afterApplicationCreated(function () {
@@ -29,37 +27,10 @@ class FunctionalTestCase extends TestCase
             $this->artisan('migrate:rollback');
         });
 
-        $this->beforeApplicationDestroyed(function () {
-            foreach ($this->settingsModified as $key => $value) {
-                Settings::set($key, $value);
-            }
-
-            Settings::save();
-
-            $this->settingsModified = [];
-        });
-
         parent::setUp();
     }
 
     /**
-     * Set some setting that should automatically be
-     * reverted to it's default value after each test.
-     * @param array $settings
-     */
-    protected function setSettings(array $settings)
-    {
-        foreach ($settings as $key => $value) {
-            $this->settingsModified[$key] = settings($key);
-            Settings::set($key, $value);
-        }
-
-        Settings::save();
-
-        $this->refreshAppAndExecuteCallbacks();
-    }
-
-    /**
      * @param array $attrubutes
      * @return mixed
      */
@@ -131,6 +102,24 @@ class FunctionalTestCase extends TestCase
         return $user;
     }
 
+    public function seeElement($element, $negate = false)
+    {
+        $method = $negate ? 'assertEquals' : 'assertGreaterThan';
+
+        $message = $negate
+            ? "Element [$element] exists on specified page."
+            : "Element [$element] does not exist on specified page.";
+
+        $this->$method(0, $this->crawler->filter($element)->count(), $message);
+
+        return $this;
+    }
+
+    public function dontSeeElement($element)
+    {
+        return $this->seeElement($element, true);
+    }
+
     public function seeInTable($selector, $text, $rowNumber, $columnNumber, $negate = false)
     {
         $fullSelector = "{$selector} tbody tr:nth-child({$rowNumber}) > td:nth-child({$columnNumber})";
@@ -153,4 +142,5 @@ class FunctionalTestCase extends TestCase
         $link = $this->crawler->filter($selector)->first();
         return $this->visit($link->link()->getUri());
     }
-}
+
+}
\ No newline at end of file
diff --git a/tests/functional/Http/Controllers/ActivityControllerTest.php b/tests/functional/Http/Controllers/ActivityControllerTest.php
index 27a7b4f..b837c53 100644
--- a/tests/functional/Http/Controllers/ActivityControllerTest.php
+++ b/tests/functional/Http/Controllers/ActivityControllerTest.php
@@ -15,12 +15,11 @@ class ActivityControllerTest extends FunctionalTestCase
     {
         parent::setUp();
         $this->logger = app(Portal\Services\Logging\UserActivity\Logger::class);
+        $this->withoutMiddleware();
     }
 
     public function test_display_all_activities()
     {
-        $this->withoutMiddleware();
-
         $user1 = factory(User::class)->create();
         $user2 = factory(User::class)->create();
 
@@ -41,8 +40,8 @@ class ActivityControllerTest extends FunctionalTestCase
 
     public function test_display_activities_for_user()
     {
-        $user = $this->createAndLoginAdminUser();
-
+        $user = factory(User::class)->create();
+        $this->be($user);
         $this->logger->log('foo');
 
         $this->visit('activity')
@@ -53,8 +52,6 @@ class ActivityControllerTest extends FunctionalTestCase
 
     public function test_search_activities()
     {
-        $this->withoutMiddleware();
-
         $user = factory(User::class)->create();
         $this->be($user);
         $this->logger->log('foo');
diff --git a/tests/functional/Http/Controllers/Auth/AuthControllerTest.php b/tests/functional/Http/Controllers/Auth/AuthControllerTest.php
index 6e8d746..a6cd184 100644
--- a/tests/functional/Http/Controllers/Auth/AuthControllerTest.php
+++ b/tests/functional/Http/Controllers/Auth/AuthControllerTest.php
@@ -113,13 +113,11 @@ class AuthControllerTest extends FunctionalTestCase
 
     public function test_registration_with_email_confirmation()
     {
-        $this->setSettings([
-            'reg_enabled' => true,
-            'reg_email_confirmation' => true
-        ]);
-
         $this->expectsEvents(Registered::class);
 
+        Settings::set('reg_enabled', true);
+        Settings::set('reg_email_confirmation', true);
+
         $data = $this->getRegistrationFormStubData();
 
         $this->registerUser($data);
@@ -138,16 +136,8 @@ class AuthControllerTest extends FunctionalTestCase
         $this->assertEquals('test@test.com', $message['to_email']);
         $this->assertEquals(config('mail.from.address'), $message['from_email']);
         $this->assertEquals(config('mail.from.name'), $message['from_name']);
-        $this->assertContains(
-            trans('app.thank_you_for_registering', ['app' => settings('app_name')]),
-            trim($message['html_body'])
-        );
-        $this->assertContains(
-            trans('app.confirm_email_on_link_below'),
-            trim($message['html_body'])
-        );
-        $this->assertContains(
-            route('register.confirm-email', $token),
+        $this->assertEquals(
+            view('emails.registration.confirmation', compact('token'))->render(),
             trim($message['html_body'])
         );
 
@@ -156,14 +146,12 @@ class AuthControllerTest extends FunctionalTestCase
 
     public function test_registration_without_email_confirmation()
     {
-        $this->setSettings([
-            'reg_enabled' => true,
-            'reg_email_confirmation' => false,
-            'notifications_signup_email' => false
-        ]);
-
         $this->expectsEvents(Registered::class);
 
+        Settings::set('reg_enabled', true);
+        Settings::set('reg_email_confirmation', false);
+        Settings::set('notifications_signup_email', false);
+
         $data = $this->getRegistrationFormStubData();
         $this->registerUser($data);
 
@@ -179,13 +167,6 @@ class AuthControllerTest extends FunctionalTestCase
 
     public function test_email_notification_when_new_user_was_registered()
     {
-        $this->setSettings([
-            'app_name' => 'foo',
-            'reg_enabled' => true,
-            'reg_email_confirmation' => false,
-            'notifications_signup_email' => true
-        ]);
-
         $admin1 = factory(User::class)->create(['email' => 'john.doe@test.com']);
         $admin2 = factory(User::class)->create(['email' => 'jane.doe@test.com']);
         $user = factory(User::class)->create(['email' => 'user.doe@test.com']);
@@ -196,6 +177,10 @@ class AuthControllerTest extends FunctionalTestCase
         $role = Role::where('name', 'User')->first();
         $role->users()->attach($user->id);
 
+        Settings::set('reg_enabled', true);
+        Settings::set('reg_email_confirmation', false);
+        Settings::set('notifications_signup_email', true);
+
         $data = $this->getRegistrationFormStubData();
         $this->registerUser($data);
 
@@ -205,23 +190,19 @@ class AuthControllerTest extends FunctionalTestCase
 
         $this->assertEquals(2, count($inbox));
 
-        $this->assertEquals('[foo] New User Registration', $inbox[0]['subject']);
+        $this->assertEquals('New User Registration', $inbox[0]['subject']);
         $this->assertEquals('jane.doe@test.com', $inbox[0]['to_email']);
-        $this->assertContains(
-            trans('app.new_user_was_registered_on', ['app' => settings('app_name')]),
-            trim($inbox[0]['html_body'])
-        );
-        $this->assertContains(
-            trans('app.to_view_details_visit_link_below'),
-            trim($inbox[0]['html_body'])
-        );
-        $this->assertContains(
-            route('user.show', $newUser->id),
+        $this->assertEquals(
+            view('emails.notifications.new-registration', ['user' => $admin2, 'newUser' => $newUser])->render(),
             trim($inbox[0]['html_body'])
         );
 
-        $this->assertEquals('[foo] New User Registration', $inbox[1]['subject']);
+        $this->assertEquals('New User Registration', $inbox[1]['subject']);
         $this->assertEquals('john.doe@test.com', $inbox[1]['to_email']);
+        $this->assertEquals(
+            view('emails.notifications.new-registration', ['user' => $admin1, 'newUser' => $newUser])->render(),
+            trim($inbox[1]['html_body'])
+        );
 
         $this->emptyInbox();
     }
@@ -233,7 +214,7 @@ class AuthControllerTest extends FunctionalTestCase
         factory(User::class)->create(['username' => 'foo', 'password' => 'bar']);
 
         $this->visit('login' . $to)
-            ->seeElement('input', ['type' => 'hidden', 'name' => 'to'])
+            ->seeElement('input[type=hidden][name=to]')
             ->type('foo', 'username')
             ->type('bar', 'password')
             ->press('Log In');
@@ -244,28 +225,20 @@ class AuthControllerTest extends FunctionalTestCase
     public function test_custom_redirect_page_is_available_after_failed_login_attempt()
     {
         $to = 'http://www.google.com';
-        $element = 'input';
-        $elementAttrs = ['type' => 'hidden', 'name' => 'to'];
+        $element = 'input[type=hidden][name=to]';
 
         $this->visit('login?to=' . $to)
-            ->seeElement($element, $elementAttrs)
+            ->seeElement($element)
             ->type('foo', 'username')
             ->type('bar', 'password')
             ->press('Log In');
 
         $this->seePageIs('login?to=' . urlencode($to))
-            ->seeElement($element, $elementAttrs);
+            ->seeElement($element);
     }
 
     public function test_access_to_auth_pages_is_not_allowed_after_authentication()
     {
-        $this->setSettings([
-            'reg_enabled' => true,
-            '2fa.enabled' => true
-        ]);
-
-        $this->refreshAppAndExecuteCallbacks();
-
         factory(User::class)->create(['username' => 'foo', 'password' => 'bar']);
         $this->loginUser('foo', 'bar');
 
@@ -323,7 +296,11 @@ class AuthControllerTest extends FunctionalTestCase
 
     public function test_login_with_2fa_enabled()
     {
-        $this->setSettings(['2fa.enabled' => true]);
+        $currentSetting = Settings::get('2fa.enabled');
+        Settings::set('2fa.enabled', true);
+        Settings::save();
+
+        $this->refreshAppAndExecuteCallbacks();
 
         $this->expectsEvents(LoggedIn::class);
 
@@ -339,11 +316,16 @@ class AuthControllerTest extends FunctionalTestCase
         $this->type('123', 'token')
             ->press('Validate')
             ->seePageIs('/');
+
+        Settings::set('2fa.enabled', $currentSetting);
+        Settings::save();
     }
 
     public function test_login_with_wrong_2fa_token()
     {
-        $this->setSettings(['2fa.enabled' => true]);
+        $currentSetting = Settings::get('2fa.enabled');
+        Settings::set('2fa.enabled', true);
+        Settings::save();
 
         $this->refreshAppAndExecuteCallbacks();
 
@@ -360,27 +342,10 @@ class AuthControllerTest extends FunctionalTestCase
             ->press('Validate')
             ->seePageIs('login')
             ->see('2FA Token is invalid!');
-    }
 
-    /**
-     * Mock the event dispatcher so all events are silenced and collected.
-     * We will override it to allow model events though, since we want
-     * user notifications to be sent, so we can test them.
-     *
-     * @return $this
-     */
-    protected function withoutEvents()
-    {
-        $mock = Mockery::mock('Illuminate\Contracts\Events\Dispatcher');
-
-        $mock->shouldReceive('fire')->andReturnUsing(function ($called) {
-            $this->firedEvents[] = $called;
-        });
-
-        $mock->shouldReceive('until');
+        Settings::set('2fa.enabled', $currentSetting);
+        Settings::save();
+    }
 
-        $this->app->instance('events', $mock);
 
-        return $this;
-    }
 }
diff --git a/tests/functional/Http/Controllers/Auth/PasswordControllerTest.php b/tests/functional/Http/Controllers/Auth/PasswordControllerTest.php
index fb48ffc..6e38637 100644
--- a/tests/functional/Http/Controllers/Auth/PasswordControllerTest.php
+++ b/tests/functional/Http/Controllers/Auth/PasswordControllerTest.php
@@ -29,19 +29,9 @@ class PasswordControllerTest extends FunctionalTestCase
         $this->assertEquals('test@test.com', $message['to_email']);
         $this->assertEquals(config('mail.from.address'), $message['from_email']);
         $this->assertEquals(config('mail.from.name'), $message['from_name']);
-        $this->assertContains(
-            trans('app.request_for_password_reset_made'),
-            $message['html_body']
-        );
-
-        $this->assertContains(
-            url("password/reset/{$token}"),
-            $message['html_body']
-        );
-
-        $this->assertContains(
-            trans('app.if_you_did_not_requested'),
-            $message['html_body']
+        $this->assertEquals(
+            view('emails.password.remind', compact('token'))->render(),
+            trim($message['html_body'])
         );
 
         $this->emptyInbox();
@@ -126,26 +116,4 @@ class PasswordControllerTest extends FunctionalTestCase
             ->type('123123', 'password_confirmation')
             ->press('Update Password');
     }
-
-    /**
-     * Mock the event dispatcher so all events are silenced and collected.
-     * We will override it to allow model events though, since we want
-     * user notifications to be sent, so we can test them.
-     *
-     * @return $this
-     */
-    protected function withoutEvents()
-    {
-        $mock = Mockery::mock('Illuminate\Contracts\Events\Dispatcher');
-
-        $mock->shouldReceive('fire')->andReturnUsing(function ($called) {
-            $this->firedEvents[] = $called;
-        });
-
-        $mock->shouldReceive('until');
-
-        $this->app->instance('events', $mock);
-
-        return $this;
-    }
 }
diff --git a/tests/functional/Http/Controllers/Auth/SocialAuthControllerTest.php b/tests/functional/Http/Controllers/Auth/SocialAuthControllerTest.php
index c80901f..ea34b7f 100644
--- a/tests/functional/Http/Controllers/Auth/SocialAuthControllerTest.php
+++ b/tests/functional/Http/Controllers/Auth/SocialAuthControllerTest.php
@@ -9,8 +9,6 @@ class SocialAuthControllerTest extends FunctionalTestCase
 {
     public function test_social_login_for_new_user()
     {
-        $this->setSettings(['reg_enabled' => true]);
-
         $socialUser = new StubSocialUser;
 
         $driver = m::mock(Laravel\Socialite\Contracts\Provider::class);
@@ -66,8 +64,6 @@ class SocialAuthControllerTest extends FunctionalTestCase
 
     public function test_twitter_login()
     {
-        $this->setSettings(['reg_enabled' => true]);
-
         $socialUser = new StubSocialUserWithoutEmail;
         $driver = m::mock(Laravel\Socialite\Contracts\Provider::class);
         $driver->shouldReceive('user')->andReturn($socialUser);
@@ -86,8 +82,6 @@ class SocialAuthControllerTest extends FunctionalTestCase
 
     public function test_missing_email_for_non_twitter_provider()
     {
-        $this->setSettings(['reg_enabled' => true]);
-
         $socialUser = new StubSocialUserWithoutEmail;
         $driver = m::mock(Laravel\Socialite\Contracts\Provider::class);
         $driver->shouldReceive('user')->andReturn($socialUser);
@@ -100,8 +94,6 @@ class SocialAuthControllerTest extends FunctionalTestCase
 
     public function test_social_login_for_user_with_one_word_name()
     {
-        $this->setSettings(['reg_enabled' => true]);
-
         $socialUser = new StubSocialUserWithOneWordName;
 
         $driver = m::mock(Laravel\Socialite\Contracts\Provider::class);
diff --git a/tests/functional/Http/Controllers/PermissionsControllerTest.php b/tests/functional/Http/Controllers/PermissionsControllerTest.php
index e2ed1ec..7188840 100644
--- a/tests/functional/Http/Controllers/PermissionsControllerTest.php
+++ b/tests/functional/Http/Controllers/PermissionsControllerTest.php
@@ -40,7 +40,7 @@ class PermissionsControllerTest extends FunctionalTestCase
 
         $this->visit('permission')
             ->seeInTable('table', $permission->display_name, 1, 1)
-            ->seeElement('input', ['type' => 'checkbox', 'name' => "roles[$role->id][]"]);
+            ->seeElement('input[type=checkbox][name="roles['.$role->id.'][]"]');
 
         $this->assertEquals(1, $this->crawler->filter('table tbody tr')->count());
         $this->assertEquals(3, $this->crawler->filter('table tbody tr:nth-child(1) > td')->count());
diff --git a/tests/functional/Repositories/Country/EloquentCountryTest.php b/tests/functional/Repositories/Country/EloquentCountryTest.php
index b9ab516..a291833 100644
--- a/tests/functional/Repositories/Country/EloquentCountryTest.php
+++ b/tests/functional/Repositories/Country/EloquentCountryTest.php
@@ -24,7 +24,7 @@ class EloquentCountryTest extends FunctionalTestCase
         $countries = factory(Country::class)->times(8)->create();
         $countries = $countries->sortBy(function ($country) {
             return $country->name;
-        })->pluck('name', 'id');
+        })->lists('name', 'id');
 
         $this->assertEquals($countries->toArray(), $this->repo->lists()->toArray());
     }
diff --git a/tests/functional/Repositories/Role/EloquentRoleTest.php b/tests/functional/Repositories/Role/EloquentRoleTest.php
index 6e1a4be..7505507 100644
--- a/tests/functional/Repositories/Role/EloquentRoleTest.php
+++ b/tests/functional/Repositories/Role/EloquentRoleTest.php
@@ -84,7 +84,7 @@ class EloquentRoleTest extends FunctionalTestCase
         $role = factory(Role::class)->create();
         $permissions = factory(\Portal\Permission::class)->times(2)->create();
 
-        $this->repo->updatePermissions($role->id, $permissions->pluck('id')->toArray());
+        $this->repo->updatePermissions($role->id, $permissions->lists('id')->toArray());
 
         $this->seeInDatabase('permission_role', ['role_id' => $role->id, 'permission_id' => $permissions[0]->id]);
         $this->seeInDatabase('permission_role', ['role_id' => $role->id, 'permission_id' => $permissions[1]->id]);
@@ -93,7 +93,7 @@ class EloquentRoleTest extends FunctionalTestCase
     public function test_lists()
     {
         $roles = factory(Role::class)->times(4)->create();
-        $roles = $roles->pluck('name', 'id');
+        $roles = $roles->lists('name', 'id');
 
         $this->assertEquals($roles->toArray(), $this->repo->lists()->toArray());
     }
diff --git a/tests/functional/Repositories/User/EloquentUserTest.php b/tests/functional/Repositories/User/EloquentUserTest.php
index 32edecf..afc975a 100644
--- a/tests/functional/Repositories/User/EloquentUserTest.php
+++ b/tests/functional/Repositories/User/EloquentUserTest.php
@@ -271,7 +271,7 @@ class EloquentUserTest extends FunctionalTestCase
     {
         $admins = factory(User::class)->times(2)->create();
         $role = Role::where('name', 'Admin')->first();
-        $role->users()->attach($admins->pluck('id')->toArray());
+        $role->users()->attach($admins->lists('id')->toArray());
 
         $user = factory(User::class)->create();
         $role = Role::where('name', 'User')->first();
