I have a custom object called Server_Order__c used in my customer portal which is then mirrored to my Opportunities, I would like to also copy over attachments to the relavent Opportunity.

How the attachment can be linked to the right Opportunity is by getting the Opportunity__c value from Service_Orders__c object.

Edit:
Due to the way SF works, attachment are uploaded to their own object and justhave reference the parent object which means the record is not updated. What I would like to know is how can I have any attachments uploaded to my Service Order object, they should be also copied to the relevant Opportunity. The mirrored opportunity (ID) is referenced in my Service Order as Opportunity__c.

Here is my apex trigger as of now, but it does not seem to work.

    trigger CopyAttachmentstoOpps on Attachment (after insert) {
    
        List<Attachment> insertAttList = new List<Attachment>();
        
        for (Attachment att:Trigger.new) {           
            String parentIdString = String.valueof(att.parentId);
            Service_Order__c oppId = [SELECT Opportunity__c FROM Service_Order__c WHERE ID = :att.parentId];
            system.debug('The ID is' + oppId);
            
            Attachment b = att.clone();
            b.parentid = parentIdString;
            insertAttList.add(b);                 
        }            
    }