*/ public function attributes(): array { return [ ...parent::attributes(), 'model' => $this->model(), ]; } /** * Get the model related to the query. * * @return class-string * * @throws Exception */ public function model(): string { $baseType = $this->baseRebingType(); if ($baseType instanceof EloquentType) { return $baseType->model(); } throw new RuntimeException('The base return rebing type must be an instance of EloquentType, '.get_class($baseType).' given.'); } /** * Determine if the return model is trashable. */ protected function isTrashable(): bool { $baseType = $this->baseRebingType(); if ($baseType instanceof EloquentType) { return in_array(new DeletedAtField(), $baseType->fieldClasses()); } return false; } /** * Manage the query. */ protected function query(Builder $builder, array $args): Builder { return $builder; } }