Kulga sakibarifin I've been a bit confused by this for a while, as I can't seem to replicate it. One new step I've gotten to is that the issue is being caused here:
if ($actor->id !== $draft->user_id) {
throw new PermissionDeniedException();
}
Is there any reason why you might be editing the draft of another user? Perhaps you might be using fof impersonate or something else? Could you check that the draft's user_id field corresponds with the user's id?