You should be able to programatically create a page in other status than draft with Page::create
.
It takes a bit of work - you need (?) to add more stuff, but it works:
$page = Page::create([
'kirby' => kirby(),
'site' => site(),
'parent' => $parent,
'isDraft' => false,
'num' => null
/* … and slug, template, model and content */
])->save();