Narrowing type using `@phpstan-assert-if-true` doesn't work with `$this` on abstract class

Bug report

<?php declare(strict_types=1);

/**
 * @phpstan-sealed SystemActor|AnonymousVisitorActor
 */
abstract class Actor
{
    /**
     * @phpstan-assert-if-true SystemActor $this
     */
    public function isSystem() : bool
    {
        return $this instanceof SystemActor;
    }

    /**
     * @phpstan-assert-if-true AnonymousVisitorActor $this
     */
    public function isAnonymousVisitor() : bool
    {
        return $this instanceof AnonymousVisitorActor;
    }
}

class SystemActor extends Actor
{
}

class AnonymousVisitorActor extends Actor
{
}

$actor = mt_rand(0, 1) === 1 ? new SystemActor() : new AnonymousVisitorActor();
\PHPStan\dumpType($actor);

if ($actor->isSystem()) {
    \PHPStan\dumpType($actor);
} else {
    \PHPStan\dumpType($actor);
}

It will always be AnonymousVisitorActor|SystemActor

Code snippet that reproduces the problem

https://phpstan.org/r/f8b4723c-7774-49d6-beee-2e4fb0c3c312

Expected output

I expected SystemActor in the if condition and AnonymousVisitorActor in the else condition.

Did PHPStan help you today? Did it make you happy in any way?

No response