namespace Modules\User\Application\Commands; use Illuminate\Support\Facades\Hash; use Lorisleiva\Actions\Concerns\AsAction; use Modules\User\Application\DTOs\CreateUserData; use Modules\User\Infrastructure\Persistence\Eloquent\Models\User; use Modules\AccessControl\Infrastructure\Persistence\Eloquent\Models\RoleModel; class CreateUser { use AsAction; public function handle(CreateUserData $data): User { $user = User::create([ 'name' => $data->name, 'email' => $data->email, 'phone' => $data->phone, 'password' => Hash::make($data->password), 'status' => $data->is_active ? 'active' : 'inactive', // Assuming status is string or enum ]); if ($data->role_id) { $role = RoleModel::find($data->role_id); if ($role) { $user->assignRole($role->name); } } return $user; } }