public function refresh(string $name): ?array
    {
        $memory = $this->memory;
        $available = $memory->get('extensions.available', []);
        $active = $memory->get('extensions.active', []);

        if (! isset($available[$name])) {
            return null;
        }

        // Append the activated extension to active extensions, and also
        // publish the extension (migrate the database and publish the
        // asset).
        if (! \is_null($handles = $active[$name]['config']['handles'] ?? null)) {
            Arr::set($available, "{$name}.config.handles", $handles);
        }

        $active[$name] = $available[$name];

        $memory->put('extensions.active', $active);

        return $active;
    }