EntityType::class, 'fiscal_year_start' => 'date', 'fiscal_year_end' => 'date', ]; public function company(): BelongsTo { return $this->belongsTo(FilamentCompanies::companyModel(), 'company_id'); } public function createdBy(): BelongsTo { return $this->belongsTo(FilamentCompanies::userModel(), 'created_by'); } public function updatedBy(): BelongsTo { return $this->belongsTo(FilamentCompanies::userModel(), 'updated_by'); } public function getCountryName(): string { return country($this->country)->getName(); } public static function getAvailableCountryCodes(): array { $allCountries = countries(); $codes = []; foreach ($allCountries as $code => $country) { $codes[] = $code; } return $codes; } public static function getAvailableCountryOptions(): array { $allCountries = countries(); $countryData = []; foreach ($allCountries as $code => $countryDetails) { $name = $countryDetails['name']; $emoji = $countryDetails['emoji']; $countryData[$code] = $name . ' ' . $emoji; } return $countryData; } public static function getAvailableCountryNames(): array { $allCountries = countries(); $names = []; foreach ($allCountries as $country) { $names[] = $country['name']; } return $names; } public static function getAvailableCountryEmojis(): array { $allCountries = countries(); $emojis = []; foreach ($allCountries as $country) { $emojis[] = $country['emoji']; } return $emojis; } public static function getStateOptions(string $countryCode): array { $states = country($countryCode)->getDivisions(); return collect($states)->mapWithKeys(static function ($state, $code): array { return [$code => $state['name']]; })->toArray(); } public static function getTimezoneOptions(string $countryCode): array { $timezones = country($countryCode)->getTimezones(); if ($timezones) { return collect($timezones)->mapWithKeys(static function ($timezone): array { return [$timezone => $timezone]; })->toArray(); } return []; } protected static function newFactory(): Factory { return CompanyProfileFactory::new(); } }