Code Duplication    Length = 12-16 lines in 2 locations

src/Models/Permission.php 1 location

@@ 33-44 (lines=12) @@
30
        $this->setTable(config('permission.table_names.permissions'));
31
    }
32
33
    public static function create(array $attributes = [])
34
    {
35
        $attributes['guard_name'] = $attributes['guard_name'] ?? Guard::getDefaultName(static::class);
36
37
        $permission = static::getPermissions(['name' => $attributes['name'], 'guard_name' => $attributes['guard_name']])->first();
38
39
        if ($permission) {
40
            throw PermissionAlreadyExists::create($attributes['name'], $attributes['guard_name']);
41
        }
42
43
        return static::query()->create($attributes);
44
    }
45
46
    /**
47
     * A permission can be applied to roles.

src/Models/Role.php 1 location

@@ 32-47 (lines=16) @@
29
        $this->setTable(config('permission.table_names.roles'));
30
    }
31
32
    public static function create(array $attributes = [], $withException = true)
33
    {
34
        $attributes['guard_name'] = $attributes['guard_name'] ?? Guard::getDefaultName(static::class);
35
36
        $existingRole = static::where([
37
            'name' => $attributes['name'],
38
            'guard_name' => $attributes['guard_name'],
39
        ])->first();
40
41
        if ($existingRole) {
42
            if ($withException) throw RoleAlreadyExists::named($attributes['name'], $attributes['guard_name']);
43
            return $existingRole;
44
        }
45
46
        return static::query()->create($attributes);
47
    }
48
	
49
    /**
50
     * Create many roles.