What are the advantages and disadvantages of using a static create method to handle object instances retrieved from sessions in PHP?

When handling object instances retrieved from sessions in PHP, using a static create method can help centralize the instantiation process and ensure consistent object creation. However, this approach can limit flexibility in terms of object instantiation and may lead to code duplication if the create method needs to be modified for different object types.

class User {
    private $id;
    private $name;

    public static function create($id, $name) {
        $user = new User();
        $user->id = $id;
        $user->name = $name;
        return $user;
    }
}

// Usage example
$user = User::create(1, 'John Doe');