belongsToMany(Project::class, 'skill_project') ->withPivot(['level_before', 'level_after', 'level_description_key']) ->withTimestamps(); } public function scopeByCategory(Builder $query, string $category): Builder { return $query->where('category', $category); } public function scopeOrdered(Builder $query): Builder { return $query->orderBy('category')->orderBy('display_order'); } public function getCurrentLevel(): int { $maxLevelAfter = $this->projects()->max('skill_project.level_after'); return $maxLevelAfter ?? 1; } }