sequence); } /** * @param SortRuleOperation[] $options */ public function setOperations(array $options): void { $values = array_map(fn (SortRuleOperation $opt) => $opt->value, $options); $this->sequence = implode(',', $values); } public function logDescriptor(): string { return "({$this->id}) {$this->name}"; } public function getUrl(): string { return url("/settings/sorting/rules/{$this->id}"); } public function books(): HasMany { return $this->hasMany(Book::class); } public static function allByName(): Collection { return static::query() ->withCount('books') ->orderBy('name', 'asc') ->get(); } }