Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

kodeine's avatar

@RomainLanz, yup i forgot the migrations update.

I tried your code, dump($user->getPermissions()); shows me this.

array:1 [
  "internships" => array:4 [
    "create" => false
    "update" => false
    "view" => true
    "delete" => true
  ]
]

EDIT: Did you assign the role to user? Do a getPermissions() dump and see if it shows permissions properly.

RomainLanz's avatar

@kodeine
Yes of course.

$teacher = User::create([
    'first_name' => 'Teacher',
    'last_name'  => 'Example',
    'address'    => $faker->address,
    'phone'      => $faker->phoneNumber,
    'email'      => 'teacher@example.com',
    'password'   => 'secret',
]);
$teacher->assignRole('teacher');

I also get this with tinker :

>>> $u->getPermissions();
=> [
       "admin"               => [
           "view.dashboard" => true
       ],
       "enterprises"         => [
           "create" => true,
           "view"   => true,
           "update" => true,
           "delete" => true
       ],
       "internships.teacher" => [
           "create" => false,
           "update" => false,
           "view"   => true
       ]
   ]
>>>

So the problem is probably on the middleware, or is on my own code.

EDIT : It's write internships.teacher, is it normal?

kodeine's avatar

@ RomainLanz, if its showing internships.teacher in your getPermissions it means internships.teacher does not have inherit_id to internships. But the same code on my system works.

Previous

Please or to participate in this conversation.