$columns * @return Collection */ public function all(array $columns = ['*']): Collection { return $this->model->newQuery()->get($columns); } /** * @param int|string $id * @param array $columns */ public function find(int|string $id, array $columns = ['*']): ?Model { return $this->model->newQuery()->find($id, $columns); } /** * @param array $attributes */ public function create(array $attributes): Model { // Uses mass assignment; ensure $fillable is set on the model return $this->model->newQuery()->create($attributes); } /** * @param int|string $id * @param array $attributes */ public function update(int|string $id, array $attributes): bool { $instance = $this->find($id); if (! $instance) { return false; } return $instance->fill($attributes)->save(); } /** * @param int|string $id */ public function delete(int|string $id): bool { $instance = $this->find($id); if (! $instance) { return false; } return (bool) $instance->delete(); } }