hasMany(InvoicePayment::class); } public function order(): BelongsTo { return $this->belongsTo(Order::class); } public function customer(): BelongsTo { return $this->belongsTo(Customer::class, 'customer_id'); } public function address(): BelongsTo { return $this->belongsTo(CustomerAddress::class, 'invoice_address_id')->withTrashed(); } public function scopeByCustomer($query, $customerId) { return $query->where('customer_id', $customerId); } public function scopeByUUID($query, $uuid) { return $query->where('uuid', $uuid); } public function scopeById($query, $id) { return $query->where('id', $id); } public function scopeByPeriod($query, $start, $end, $field = 'created_at') { return $query->whereBetween($field, [$start, $end]); } }