$allowList 許可カラム(省略時は無制限だが推奨しない) */ public function scopeApplySort(Builder $query, ?string $column, ?string $direction, array $allowList = []): Builder { if (empty($column)) { return $query; } $dir = strtolower($direction ?? 'asc'); if (!in_array($dir, ['asc', 'desc'], true)) { $dir = 'asc'; } if (!empty($allowList) && !in_array($column, $allowList, true)) { return $query; // 許可されていないカラムは無視 } return $query->orderBy($column, $dir); } }