'Choose a valid moderation status.', ]); } return $this->collections->syncCollectionPublicState($collection, [ 'moderation_status' => $status, ]); } public function updateInteractions(Collection $collection, array $attributes): Collection { return $this->collections->syncCollectionPublicState($collection, $attributes); } public function unfeature(Collection $collection): Collection { return $this->collections->unfeatureCollection($collection); } public function removeMember(Collection $collection, CollectionMember $member): void { if ((int) $member->collection_id !== (int) $collection->id) { throw ValidationException::withMessages([ 'member' => 'This member does not belong to the selected collection.', ]); } if ($member->role === Collection::MEMBER_ROLE_OWNER) { throw ValidationException::withMessages([ 'member' => 'The collection owner cannot be removed by moderation actions.', ]); } $member->forceFill([ 'status' => Collection::MEMBER_STATUS_REVOKED, 'revoked_at' => now(), ])->save(); $this->collaborators->syncCollaboratorsCount($collection); } }