private function registerProviders()
    {
        $providers = $this->config('app')['providers'];
        foreach ($providers as $provider) {
            $obj = new $provider($this);

            if (!$obj instanceof Provider) {
                throw new \Exception("Invalid provider: $provider");
            }

            $this->container->invoke($obj, 'register');
        }
    }