'boolean', 'manager_changed_at' => 'datetime', ]; public function parent(): BelongsTo { return $this->belongsTo(Department::class, 'parent_id'); } public function children(): HasMany { return $this->hasMany(Department::class, 'parent_id')->orderBy('sort_order'); } public function manager(): BelongsTo { return $this->belongsTo(User::class, 'manager_id'); } public function users(): HasMany { return $this->hasMany(User::class, 'department_id'); } public function members(): BelongsToMany { return $this->belongsToMany(User::class, 'department_user') ->withPivot(['role_in_team', 'is_primary', 'joined_at']) ->withTimestamps(); } }