$items * @property-read int|null $items_count * @property-read \Illuminate\Database\Eloquent\Collection $schedules * @property-read int|null $schedules_count * @method static \Illuminate\Database\Eloquent\Builder|ServicePackage newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|ServicePackage newQuery() * @method static \Illuminate\Database\Eloquent\Builder|ServicePackage onlyTrashed() * @method static \Illuminate\Database\Eloquent\Builder|ServicePackage query() * @method static \Illuminate\Database\Eloquent\Builder|ServicePackage whereClientId($value) * @method static \Illuminate\Database\Eloquent\Builder|ServicePackage whereCreatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|ServicePackage whereDeletedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|ServicePackage whereId($value) * @method static \Illuminate\Database\Eloquent\Builder|ServicePackage whereStatus($value) * @method static \Illuminate\Database\Eloquent\Builder|ServicePackage whereUpdatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|ServicePackage withTrashed(bool $withTrashed = true) * @method static \Illuminate\Database\Eloquent\Builder|ServicePackage withoutTrashed() * @mixin \Eloquent */ class ServicePackage extends Model { use HasFactory, SoftDeletes; protected $table = 'service_packages'; protected $fillable = [ 'client_id', 'provider_id', 'status', ]; protected $casts = [ 'status' => ServicePackageStatusEnum::class, 'created_at' => 'datetime', 'updated_at' => 'datetime', 'deleted_at' => 'datetime', ]; public function client() { return $this->belongsTo(Client::class); } public function provider() { return $this->belongsTo(Provider::class); } public function payments() { return $this->hasMany(Payment::class); } public function items() { return $this->hasMany(ServicePackageItem::class); } public function schedules() { return $this->belongsToMany(Schedule::class, 'service_package_items') ->withTimestamps(); } }