Edit File: AuthBaseModel.php
<?php namespace App\Models; use App\Models\Helpers\AuthBaseHelpers; use App\Models\Relationships\AuthBaseRelations; use App\Models\Scopes\AuthBaseScopes; use App\Traits\SmsTrait; use App\Traits\UploadTrait; use Illuminate\Database\Eloquent\Relations\MorphMany; use Laravel\Sanctum\HasApiTokens; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; class AuthBaseModel extends Authenticatable { use Notifiable, UploadTrait, HasApiTokens, SmsTrait, AuthBaseHelpers, AuthBaseRelations, AuthBaseScopes, SoftDeletes; const IMAGEPATH = 'users'; protected $hidden = [ 'password', ]; /** * Get the user's notifications. * @return \Illuminate\Database\Eloquent\Relations\MorphMany */ public function notifications(): MorphMany { return $this->morphMany(Notification::class, 'notifiable')->latest('created_at'); } /** * The "booting" method of the model. * * @return void */ public static function boot(): void { parent::boot(); /* creating, created, updating, updated, deleting, deleted, forceDeleted, restored */ static::deleted(function ($model) { $model->deleteFile($model->attributes['image'], self::IMAGEPATH); }); static::created(function ($model) { $model->wallet()->create(); if (request()->device_id && request()->device_type) { // create a new device for user $model->devices()->create([ 'device_id' => request()->device_id, 'device_type' => request()->device_type, 'mac_address' => request()->mac_address, 'preferred_locale' => request()->header('Accept-Language'), 'is_current' => true, ]); } }); } }
Back to File Manager