This will automatically refactor fields accourding to the current order of the attribute table. Reorder the fields as you like, adjust the layer name and:
layer = QgsProject.instance().mapLayersByName("points")[0] #Change points to the name of your layer
#Create a dictionary of current field order and the field properties:
default_fields = {f.name():{'expression':f.name(),'length':f.length(),'name':f.name(),'precision':f.precision(),'sub_type':f.subType(),'type':f.type(),'type_name':f.typeName()} for f in layer.fields()}
#For example to get the properties of the KKOD field:
#default_fields['KKOD']
#{'expression': 'KKOD', 'length': 5, 'name': 'KKOD', 'precision': 0, 'sub_type': 0, 'type': 2, 'type_name': 'Integer'}
#Find the current field order accourding to the attribute table configuration:
tableconfig = layer.attributeTableConfig()
new_field_order = [c.name for c in tableconfig.columns()] #The current order in the attribute table
#Remap the fields
newfieldmap = [default_fields[newfield] for newfield in new_field_order if newfield in default_fields]
processing.runAndLoadResults("native:refactorfields", {'INPUT':layer,
'FIELDS_MAPPING':newfieldmap,'OUTPUT':'TEMPORARY_OUTPUT'})