public function extend($provider, Closure $callback)
    {
        if ($this->isProviderAliasExists($provider)) {
            throw new InvalidArgumentException("Alias provider is already reserved [{$provider}]");
        }

        $this->customProviders[$provider] = $callback;

        return $this;
    }