================================================================================
الملف الجديد: app/Policies/DentalLab/LabOrderStagePolicy.php
================================================================================

انسخ هذا الملف بالكامل (كل شيء بين الـ --- و ---)
ثم استبدله في: app/Policies/DentalLab/LabOrderStagePolicy.php

================================================================================
--- ابدأ النسخ من هنا ---
================================================================================

<?php

namespace App\Policies\DentalLab;

use App\Models\DentalLab\LabOrderStage;
use App\Models\User;
use Illuminate\Auth\Access\HandlesAuthorization;

class LabOrderStagePolicy
{
    use HandlesAuthorization;

    /**
     * التحقق من أن المستخدم هو مالك الشركة
     * إذا كان المستخدم مالك الشركة، يحصل على صلاحيات كاملة تلقائياً
     */
    private function isCompanyOwner(User $user)
    {
        $company = $user->company;
        return $company && $company->owner_user_id === $user->id;
    }

    /**
     * تحديد من يمكنه عرض أي مراحل (قائمة)
     */
    public function viewAny(User $user)
    {
        return $this->isCompanyOwner($user) || $user->hasPermission('dental-lab.lab-order-stages.view');
    }

    /**
     * تحديد من يمكنه عرض مرحلة معينة
     */
    public function view(User $user, LabOrderStage $labOrderStage)
    {
        if ($user->company_id !== $labOrderStage->labOrder->company_id) return false;
        return $this->isCompanyOwner($user) || $user->hasPermission('dental-lab.lab-order-stages.view');
    }

    /**
     * تحديد من يمكنه إنشاء مرحلة جديدة
     */
    public function create(User $user)
    {
        return $this->isCompanyOwner($user) || $user->hasPermission('dental-lab.lab-order-stages.create');
    }

    /**
     * تحديد من يمكنه تعديل مرحلة
     */
    public function update(User $user, LabOrderStage $labOrderStage)
    {
        if ($user->company_id !== $labOrderStage->labOrder->company_id) return false;
        return $this->isCompanyOwner($user) || $user->hasPermission('dental-lab.lab-order-stages.edit');
    }

    /**
     * تحديد من يمكنه حذف مرحلة (soft delete)
     */
    public function delete(User $user, LabOrderStage $labOrderStage)
    {
        if ($user->company_id !== $labOrderStage->labOrder->company_id) return false;
        return $this->isCompanyOwner($user) || $user->hasPermission('dental-lab.lab-order-stages.delete');
    }

    /**
     * تحديد من يمكنه استعادة مرحلة محذوفة
     */
    public function restore(User $user, LabOrderStage $labOrderStage)
    {
        if ($user->company_id !== $labOrderStage->labOrder->company_id) return false;
        return $this->isCompanyOwner($user) || $user->hasPermission('dental-lab.lab-order-stages.delete');
    }

    /**
     * تحديد من يمكنه حذف مرحلة بشكل نهائي
     */
    public function forceDelete(User $user, LabOrderStage $labOrderStage)
    {
        if ($user->company_id !== $labOrderStage->labOrder->company_id) return false;
        return $this->isCompanyOwner($user) || $user->hasPermission('dental-lab.lab-order-stages.delete');
    }

    /**
     * تحديد من يمكنه تحديث حالة المرحلة (مكتمل)
     */
    public function complete(User $user, LabOrderStage $labOrderStage)
    {
        if ($user->company_id !== $labOrderStage->labOrder->company_id) return false;
        return $this->isCompanyOwner($user) || $user->hasPermission('dental-lab.lab-order-stages.edit');
    }
}

================================================================================
--- انتهى النسخ هنا ---
================================================================================

الخطوات:
-------
1. انسخ الكود أعلاه (كل ما بين الـ --- و ---)
2. افتح الملف: app/Policies/DentalLab/LabOrderStagePolicy.php
3. احذف كل المحتوى الحالي (Ctrl+A ثم Delete)
4. الصق الكود الجديد (Ctrl+V)
5. احفظ الملف (Ctrl+S)

ثم شغّل الأوامر:
1. php artisan db:seed --class=DentalLabPermissionsSeeder
2. php artisan cache:clear
3. php artisan optimize:clear

انتهى! 🎉

================================================================================
