$snapshot */ class PurchaseOrder extends Model { use BelongsToTenant, ImmutablePurchaseRecord; public $timestamps = false; protected $guarded = ['id']; protected function casts(): array { return ['snapshot' => 'array', 'issued_at' => 'datetime']; } /** @return HasMany */ public function items(): HasMany { return $this->hasMany(PurchaseOrderItem::class); } /** @param Builder $query */ public function scopeVisibleTo(Builder $query, User $user): void { $query->whereIn('requisition_id', Requisition::query()->visibleTo($user)->select('id')); } }