<?php namespace Workbench\App\Models; use Workbench\Database\Factories\ProductFactory; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Relations\BelongsTo; class Product extends Model { /** * @use HasFactory<ProductFactory> */ use HasFactory; /** * @return ProductFactory<static> */ protected static function newFactory(): ProductFactory { return ProductFactory::new(); } /** * @param Builder<static> $q */ public function scopeSearch(Builder $q, string $s): void { $s = "%{$s}%"; $q->where(fn(Builder $q) => ( $q->orWhere('name', 'like', $s) ->orWhere('description', 'like', $s) )); } /** * @return BelongsTo<Category, $this> */ public function category(): BelongsTo { return $this->belongsTo(Category::class); } }