*/ protected $casts = [ 'born_at' => 'date', 'passport_given_at' => 'date', 'paid' => 'boolean', ]; /** * User * * @return BelongsTo */ public function user(): BelongsTo { return $this->belongsTo(User::class); } /** * Card state * * @return BelongsTo */ public function cardState(): BelongsTo { return $this->belongsTo(CardState::class, 'card_state_id'); } /** * Card type * * @return BelongsTo */ public function cardType(): BelongsTo { return $this->belongsTo(CardType::class, 'card_type_id'); } /** * Branch * * @return BelongsTo */ public function branch(): BelongsTo { return $this->belongsTo(Branch::class, 'branch_id'); } /** * "boot" method for model */ protected static function boot() { parent::boot(); static::creating(LoanOrderRepository::creating()); static::created(function ($model) { $uniqueId = LoanOrderRepository::generateUniqueId($model); $model->update(['unique_id' => $uniqueId]); sendSMS( $model->phone, __('module.card-order::base.card_order_created', ['order_id' => $uniqueId]) ); }); } /** * Price for card */ public function priceAmount(): int|float|string { return $this->cardState->price ?? 32; } }