You could hard code the key name into a constant, use that to set the field in the class, and then you'd be able to access the key without having to instantiate the class. e.g.
class Test extends Model
{
const PRIMARYKEY = 'id';
protected $primaryKey = self::PRIMARYKEY;
}
It can be accessed with: $key = Test::PRIMARYKEY
You would have to change the const value if you ever changed the key but that's straightforward and unlikely to be required anyway once the key has been chosen.
Makes me wonder why it isn't a static attribute. Why should there be an instance of the $primaryKey for -every- object created when it should just be the one value for the class.