private function registerGeoIp()
    {
        $this->singleton(Contracts\GeoIP::class, function ($app) {
            /** @var \Illuminate\Contracts\Config\Repository $config */
            $config = $app['config'];

            return new GeoIP(
                $app[Contracts\GeoIPDriver::class],
                $app[Contracts\GeoIPCache::class],
                Arr::only($config->get('geoip', []), ['cache', 'location', 'currencies'])
            );
        });
    }