بقراءة متمعنة للخطأ الظاهر نجده يشير الى خطأ بسياق اللغة فهو لم يتوقع ادراج المتغير الذي اسمه $admin و الجائز في اللغة أن يعرف اما ثابت const أو دالة function : أي كلاس class و بداخله دوال methods و بداخل هاته الدوال يكون الكود و الlogic لا خارجها   
	فالتخلص من هاته المشكلة بسيط و هو باضافة هذا الكود : 
 
$admin = new Role();
$admin->name         = 'admin';
$admin->display_name = 'Project Admin';
$admin->description  = 'admin is the owner of a project';
$admin->save();
	الى داخل دالة معينة ننشئها . لكن هذا قد يحل المشكلة لكنه لن يجعل الباكاج تعمل بشكل صحيح و لربما قد يضيف مشاكل اخرى   
	فالحل هو :  
	بعدما قمنا بانشاء كلاس باسم Role الان نحتاج الى انشاء ادوار , أي انشاء نماذج من هذا الكلاس فالأصح ليس استعمال الكود السابق داخل الكلاس , بل استعمالها في أي مكان ثان غير داخل هذا الكلاس حتى يكون سهل الوصول و قابل للاستنتساخ منه . 
	فالان أنت قد قمت بعمل الكلاس , وقد قمت بتوريثه دوال معينة باستعمال extends و لا تحتاج الى تعريف دوال اخرى , فتحتاج فقط الى انشاء هاته النماذج   
	و عن نفسي احبذ انشاءها داخل ملف التهجير الخاص بالمستخدمين بدالة خاصة يتم استدعاءها قبل انشاء المستخدم الافتراضي أو السوبر ادمن ومن ثم اعطاء الدور له . 
	فيكون ملف Role.php هكذا : 
 
<?php 
namespace App;
use Zizaco\Entrust\EntrustRole;
class Role extends EntrustRole
{
   // 
}
	و يكون ملف التهجير الخاص بالمستخدمين هكذا :
 
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Hash;
use App\Role; // لا تنسى تضمين الكلاس بشكل صحيح 
class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
        
        // استدعاء الدالة التي تقوم بانشاء الادوار الافتراضية
        $adminRole = $this->createeSuperAdminRole();
        
        // انشاء العضو الافتراضي او السوبر ادمن 
        $user = App\Models\User::create([
            'name'=>'SuperAdmin',
            'email'=>'super@admin.co',
            'password' => Hash::make('12345678'),
        ]);
        
        // اضافة الدور للعضو
        $user->attachRole($adminRole); 
    }
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
    private function createeSuperAdminRole()
    {
        $admin = new Role();
		$admin->name         = 'admin';
		$admin->display_name = 'Project Admin';
		$admin->description  = 'admin is the owner of a project';
		$admin->save();
        return $admin; // نقوم باعادته حتى يسهل اعطاء العضو الافتراضي هذا الدور 
    }
}
	و يمكنك معاملة الاذونات و الملف باسم Permission.php بنفس المنطق و انشاء الاذونات واضافتها للادوار بمنطق مشابه