$e_invoicing_tokens * @method static \Illuminate\Database\Eloquent\Builder|StaticModel company() * @method static \Illuminate\Database\Eloquent\Builder|StaticModel exclude($columns) * @method static \Illuminate\Database\Eloquent\Builder|License newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|License newQuery() * @method static \Illuminate\Database\Eloquent\Builder|License onlyTrashed() * @method static \Illuminate\Database\Eloquent\Builder|License query() * @method static \Illuminate\Database\Eloquent\Builder|License whereCreatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|License whereDeletedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|License whereEmail($value) * @method static \Illuminate\Database\Eloquent\Builder|License whereFirstName($value) * @method static \Illuminate\Database\Eloquent\Builder|License whereId($value) * @method static \Illuminate\Database\Eloquent\Builder|License whereIsClaimed($value) * @method static \Illuminate\Database\Eloquent\Builder|License whereLastName($value) * @method static \Illuminate\Database\Eloquent\Builder|License whereLicenseKey($value) * @method static \Illuminate\Database\Eloquent\Builder|License whereProductId($value) * @method static \Illuminate\Database\Eloquent\Builder|License whereRecurringInvoiceId($value) * @method static \Illuminate\Database\Eloquent\Builder|License whereTransactionReference($value) * @method static \Illuminate\Database\Eloquent\Builder|License whereUpdatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|License withTrashed() * @method static \Illuminate\Database\Eloquent\Builder|License withoutTrashed() * @mixin \Eloquent */ class License extends StaticModel { use SoftDeletes; protected $casts = [ 'created_at' => 'date', 'entities' => AsTaxEntityCollection::class, ]; public function expiry(): string { return $this->created_at->addYear()->format('Y-m-d'); } public function recurring_invoice() { return $this->belongsTo(RecurringInvoice::class); } public function url() { $contact = $this->recurring_invoice->client->contacts()->where('email', $this->email)->first(); } public function e_invoicing_tokens() { return $this->hasMany(EInvoicingToken::class, 'license_key', 'license_key'); } public function addEntity(TaxEntity $entity) { $entities = $this->entities; if (is_array($entities)) { $entities[] = $entity; } else { $entities = [$entity]; } $this->entities = $entities; $this->save(); } public function removeEntity(TaxEntity $entity) { if (!is_array($this->entities)) { return; } $this->entities = array_filter($this->entities, function ($existingEntity) use ($entity) { return $existingEntity->legal_entity_id !== $entity->legal_entity_id; }); $this->save(); } }