key => label */ public function labels(): array { $labels = []; foreach (array_keys(config('industry_packages.packages', [])) as $key) { $package = $this->get($key); if ($package) { $labels[$key] = $package->label(); } } return $labels; } public function get(string $key): ?IndustryPackage { $definition = config("industry_packages.packages.{$key}"); if (! is_array($definition)) { return null; } return new IndustryPackage($key, $definition); } public function has(string $key): bool { return $this->get($key) !== null; } /** * @return list */ public function all(): array { $packages = []; foreach (array_keys(config('industry_packages.packages', [])) as $key) { $package = $this->get($key); if ($package) { $packages[] = $package; } } return $packages; } public function resolveKey(?string $key): string { $key = $key ?: 'custom'; return $this->has($key) ? $key : 'custom'; } }