*/ protected $fillable = [ 'country_id', 'country_alpha2', 'code', 'subdivision_code', 'name', 'local_name', 'type', 'is_active', 'iso_status', 'sort_order', 'last_synced_at', 'source', 'source_version', 'metadata', ]; /** @var array */ protected $casts = [ 'is_active' => 'boolean', 'sort_order' => 'integer', 'last_synced_at' => 'datetime', 'metadata' => 'array', ]; /** * Use the ISO 3166-2 code for route model binding. */ public function getRouteKeyName(): string { return 'code'; } /** * Parent ISO 3166-1 country. */ public function country(): BelongsTo { return $this->belongsTo(Country::class); } /** * Scope active subdivisions. */ public function scopeActive(Builder $query): Builder { return $query->where('is_active', true); } /** * Scope ordered subdivisions for selectors and administration screens. */ public function scopeOrdered(Builder $query): Builder { return $query->orderBy('sort_order')->orderBy('name'); } }